gpt4 book ai didi

r - 当隐含ID列时,合并csv文件中的许多数据帧吗?

转载 作者:行者123 更新时间:2023-12-03 12:55:47 25 4
gpt4 key购买 nike

我想将一堆数据帧合并在一起(因为如果您只处理w / a,似乎很多操作会更容易,但是如果我做错了,请更正我)。

目前,我有一个像这样的数据框:

ID, var1, var2
A, 2, 2
B, 4, 5
.
.
Z, 3, 2

每个ID位于单行上,并带有多个单次测量

我也有一个csv文件,其中包含每个ID的重复测量结果,例如:

文件名= ID_B.csv
time, var4, var5
0, 1, 2
1, 4, 5
2, 1, 6
...

我想要的是:
ID, time, va1, var2, var4, var5
...
B, 0, 4, 5, 1, 2,
B, 1, 4, 5, 4, 5,
B, 2, 4, 5, 1, 6,
...

我真的不在乎列顺序。我能想到的唯一解决方案是将ID列添加到每个csv文件,然后遍历它们多次调用 merge()。有没有更优雅的方法?

最佳答案

我的理解是,您需要从文件名中提取ID,然后将导入的csv与现有数据框合并。

df1 <- read.csv(textConnection("ID, var1, var2
A, 2, 2
B, 4, 5"))

# assuming the imported csv-files are in working directory
filenames <- list.files(getwd(), pattern = "ID_[A-Z].csv")

# extract ID from filename
ids <- gsub("ID_([A-Z]).csv", "\\1", filenames)

# import csv-files and append ID
library(plyr)
import <- mdply(filenames, read.csv)
import$ID <- ids[import$Var1]
import$Var1 <- NULL

# merge imported csv-files and the existing dataframe
merge(df1, import)

结果:
ID var1 var2 time var4 var5
1 B 4 5 0 1 2
2 B 4 5 1 4 5
3 B 4 5 2 1 6

关于r - 当隐含ID列时,合并csv文件中的许多数据帧吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1562124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com