【问题标题】:How to concatenate 2 datasets whilst removing superfluous columns in R Studio?如何连接 2 个数据集,同时删除 R Studio 中的多余列?
【发布时间】:2019-01-12 17:28:16
【问题描述】:

我有 2 个 CSV 数据集:

文件 1:

Identity,Number,Data,Result,RT
5,3,13,45,34
6,1,44,12,56
3,1,67,23,47
0,6,43,55,91
4,5,33,34,29

文件 2:

Identity,NB,NB,Result,Data,
1,4,55,92,62
3,7,43,12,74
7,3,58,52,64
0,6,10,22,96
3,8,13,92,22

我想将这两个数据集连接起来,创建一个数据集,其中文件 2 的数据位于文件 1 数据下方的正确对应列中。

文件 3:

Identity,Number,Data,Result,RT
5,3,13,45,34
6,1,44,12,56
3,1,67,23,47
0,6,43,55,91
4,5,33,34,29

Identity,NB,NB,Result,Data,
1,4,55,92,62
3,7,43,12,74
7,3,58,52,64
0,6,10,22,96
3,8,13,92,22

但是数据和结果的列彼此重叠。

注意,文件 1 中具有相应数据的列与文件 2 中具有相同数据的列不对齐。

【问题讨论】:

  • 您可以这样做,但 R 不是 Excel,因此您要求的格式将无法使用 R 数据帧或矩阵实现。您当然可以使用 R 构建一个看起来像这样的 CSV 文件。 ....但是你为什么会呢?
  • 你真的要这样重复标题吗?
  • @Elin,不 - 我只是想说明列不对齐(但我希望它们对齐)。
  • 对不起...您是否希望这些值在正确的列名下排列并以顶部的唯一列名列表结束?
  • 身份也是唯一的吗?例如,两个表中都有 0,是相同的单位还是不同的单位?

标签: r csv


【解决方案1】:

如果您的预期输出是 R 中的一个对象,那是不可能的。如果你的意思是文件 3 是一个 csv 文件绑定文件 1 和 2,那么你可以试试这个:

f1 <- read.csv("file1.csv")
f2 <- read.csv("file2.csv")

inter <- intersect(names(f1), names(f2))
diff1 <- names(f1)[! names(f1) %in% inter]
diff2 <- names(f2)[! names(f2) %in% inter]

write.table(f1[c(inter, diff1)], "file3.csv", quote = F, sep = ",", row.names = F)
write.table(f2[c(inter, diff2)], "file3.csv", quote = F, sep = ",", row.names = F, append = T)

# append = T is applicable to write.table, not write.csv.

file3.csv

Identity,Data,Result,Number,RT
5,13,45,3,34
6,44,12,1,56
3,67,23,1,47
0,43,55,6,91
4,33,34,5,29
Identity,Data,Result,NB,NB.1
1,62,92,4,55
3,74,12,7,43
7,64,52,3,58
0,96,22,6,10
3,22,92,8,13

使用 Excel 打开它:

【讨论】:

  • 是否有可能使 C 列具有来自文件 1(列 c)的“数据”和来自文件 2(列 E)的“数据”,两者都在同一列中,或者这需要手动移动?
  • 你的意思是把同名的3列一起移动并对齐吗?查看编辑。
  • 这正是我所追求的,只是删除了第 7 行。谢谢。但我提供的数据只是一个例子。我需要对两个更大的数据集使用相同的原则。我正在尝试从代码中解决问题,如何将这种技术推断为 2 个至少 20 列宽的数据集?
  • 当然,你可以用我上面的代码来解决,不用修改任何东西。
  • 前提是你需要将两个CSV文件都读入R成功。
猜你喜欢
  • 1970-01-01
  • 2023-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
  • 1970-01-01
  • 2016-04-09
相关资源
最近更新 更多