首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据列的内容在R中复制行

根据列的内容在R中复制行
EN

Stack Overflow用户
提问于 2020-12-10 04:38:10
回答 1查看 27关注 0票数 1

我正在为一个可视化项目使用一个学校时间表数据集,并且有几天的课程,最初的形式是"MW“或"TTh”等-它们现在的格式如下:

代码语言:javascript
运行
复制
name      start   end    first   second
finance   9:00    10:00  M       W
stats     10:30   11:30  T       Th
econ      16:30   19:00  T       NA

我希望复制前三列,以获得如下所示的数据帧:

代码语言:javascript
运行
复制
day  name      start   end   
M    finance   9:00    10:00 
W    finance   9:00    10:00
T    stats     10:30   11:30
Th   stats     10:30   11:30
W    econ      10:30   11:30

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-10 04:43:32

我们可以使用pivot_longer

代码语言:javascript
运行
复制
library(dplyr)
library(tidyr)
pivot_longer(df1, cols = c(first, second), values_to = 'day', 
        names_to = 'name1') %>%
   select(day, name, start, end) %>%
   filter(complete.cases(day))

-output

代码语言:javascript
运行
复制
# A tibble: 5 x 4
#  day   name    start end  
#  <chr> <chr>   <chr> <chr>
#1 M     finance 9:00  10:00
#2 W     finance 9:00  10:00
#3 T     stats   10:30 11:30
#4 Th    stats   10:30 11:30
#5 T     econ    16:30 19:00

数据

代码语言:javascript
运行
复制
df1 <- structure(list(name = c("finance", "stats", "econ"), start = c("9:00", 
"10:30", "16:30"), end = c("10:00", "11:30", "19:00"), first = c("M", 
"T", "T"), second = c("W", "Th", NA)), class = "data.frame", row.names = c(NA, 
-3L))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65224515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档