r - 如何在R中将一行数据分成两行?

标签 r split

对于名为“Submit.and.module”的列中具有值“Separate”的行,我想在其正上方插入一行,并将数据从某些列移动到该新行。

具体来说,我想将名为“Submit.help”和“Strategy”的列中的数据移动到上面的新行。

现在我的数据如下所示:

data1

我希望数据看起来像这样:

data2

我该怎么做?

最佳答案

我想加入另一个解决方案。

数据

data <- data.frame(Which.mod         = c("TMH", "TMH-C", "TMH", "FC", "FC"),
                   Mod.time          = c(1.43, 2.31, 0.67, 2.35, 8.22),
                   Submit.help       = c(NA, "Help", NA, NA, "Submit"),
                   Strategy          = c(NA, "Ratio", NA, NA, "Count"),
                   Submit.and.module = c(NA, "Separate", NA, NA, "Separate"))

基础R

第 1 步:创建一个 ID 列和一个新数据框,该数据框是要分隔的行的子集。

data$id <- 1:nrow(data)
data1 <- subset(data, !is.na(Submit.and.module))

第2步:将适当的列设置为NA并绑定(bind)数据框

data[, c("Submit.help", "Strategy")] <- NA
data1[, c("Which.mod", "Mod.time", "Submit.and.module")] <- NA

第三步:绑定(bind)数据框并排序。

final <- rbind(data1, data)
final.ordered <- df1[order(df1$id), ]

#    Which.mod Mod.time Submit.help Strategy Submit.and.module id
# 1        TMH     1.43        <NA>     <NA>              <NA>  1
# 2       <NA>       NA        Help    Ratio              <NA>  2
# 21     TMH-C     2.31        <NA>     <NA>          Separate  2
# 3        TMH     0.67        <NA>     <NA>              <NA>  3
# 4         FC     2.35        <NA>     <NA>              <NA>  4
# 5       <NA>       NA      Submit    Count              <NA>  5
# 51        FC     8.22        <NA>     <NA>          Separate  5

Tidyverse

又好又简单 跟随。与上面的步骤相同,但尽可能链接。

library(tidyverse)
dat1 <- data %>% mutate(id = 1:n(), Submit.help = NA, Strategy = NA)
dat2 <- data %>% mutate(id = 1:n()) %>% 
                 filter(!is.na(Submit.and.module)) %>%
                 mutate(Which.mod = NA, Mod.time = NA, Submit.and.module = NA)
final <- rbind(dat2, dat1) %>% arrange(id)

关于r - 如何在R中将一行数据分成两行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53506817/

相关文章:

r - 如何从 R 中的开始日期和结束日期列表中计算一组中的当前人数

R中的残差使用auto.arima和预测包

r - Dygraph 的 %>% 替换了 Dplyr 的

r - 有条件地改变 R 中的多列

java - 即使没有值,也保存部分字符串拆分

r - 使用R检测音频文件中的特定频率

regex - 在同一行执行 regex_findall 和 split()

sql-server-2008 - SQL Server : Split operation

Perl 在一行中拆分和弹出

python - 如何在Python中将一个字符串分成10个字母?