我有几百个.csv(here is a sample of 3 of these files)我想:
在我的情况下,我可以使用以下方式获取文件:
temp = list.files(pattern="*.csv")
list2env(
lapply(setNames(temp, make.names(gsub("*.csv$", "", temp))),
read.csv), envir = .GlobalEnv)}
但在尝试了一些不同的建议之后,我看不到如何将数据帧循环和修剪为每个25,000个观察值,并为每个提取“data.Activity”列。
理想情况下,我最终会得到一个25,000个观察对象,以及来自所提供数据集的每个“data.Activity”变量,这些变量被命名为“Clinstag_XX”ID。
非常感谢任何帮助。
答案 0 :(得分:0)
以下是一个例子:
foo <- data.frame(a = 1:3, data.Activity = runif(3))
bar <- data.frame(data.Activity = runif(5), b = letters[1:5])
rows <- 2:3
do.call(cbind, lapply(ls(pattern="foo|bar"), function(dfname) {
setNames(get(dfname)[rows, "data.Activity", drop=F], dfname)
}))
# bar foo
# 2 0.4387158 0.08075924
# 3 0.3078052 0.92174396
答案 1 :(得分:0)
您始终可以使用数据表并在for循环中执行每个操作。
类似的东西。
temp = list.files(path = 'data', pattern = "*.csv")
datatable <- read.csv(file = paste0("data/",temp[1])) %>% as.data.table()
datatable <- datatable[1:2500, names(datatable)[names(datatable)%like%"Activity|Date"], with = F]
for(file in temp[2:length(temp)]){
temp1 <- read.csv(file = paste0("data/",file)) %>% as.data.table()
temp11 <- temp1[1:2500, names(temp1)[names(temp1)%like%"Activity|Date"], with = F]
datatable <- rbind(datatable, temp11, fill = T)
}
您可以调整要提取的变量的行号。 注意:我已将csv文件放在名为data的文件夹中。