【发布时间】:2022-11-04 09:57:19
【问题描述】:
如何将任何行与单个列条目组合到新列中的单个组合输入中?例如当 A 列有值,但 B-C 为空时,我想将行条目合并到 D 列中的单个输入中。
原始 txt 文件如下所示:
A|B|C
1|2|3
1
text
2
[end]
4|5|6
2
1
[end]
df <-read.delim("file.txt", header=TRUE, sep="|", blank.lines.skip = TRUE)
A B C
1 2 3
1
text
2
[end]
4 5 6
2
1
[end]
需要新添加的列 D 的数据表:
A B C D
1 2 3 1 text 2 [end]
4 5 6 2 1 [end]
我想这将是 is.na 和 mutate 函数的组合,但一直无法找到解决方案。该代码还可以包含 ends_with("[end]") 因为我要组合的每一行都以该文本结尾。对此有什么想法吗?
【问题讨论】:
-
这是一个现有的数据框,还是您正在阅读源 CSV 文件或什么?当前如何存储数据?
-
只是为了确定:这就是你的
df的样子吗:df <- data.frame( A = c(1,1, "text", 2, "[end]", 4), B = c(2, "", "", "", "", 5), C = c(3, "", "", "", "", 6) ) -
原始数据源是一个TXT文件,即“|”分开,但每行的最后一列条目包含换行符,导致该列的每个输入都作为新行输入,而不是全部放入最后一列。显示的数据框是使用 df <- read.delim(df.txt, header =TRUE, sep = "|") 上传的 txt 文件的简化示例。 df 中的每一行代表一个人,最后一列是具有换行符的文本报告。因此,我对换行符的解决方案是按照上述合并它们