我知道这个问题已经被问过多次了,但是尽管尝试应用上述解决方案,但我还是无法解决我的小问题:
我已经保存了所有要合并到一个文件夹中的.csv文件:
> file_list <- list.files()
> file_list[]
[1] "SR-einfam.csv" "SR-garage.csv" "SR-hotel.csv"
[4] "SR-IndustrieGewerbe.csv" "SR-mehrfam.csv" "SR-OffG.csv"
Run Code Online (Sandbox Code Playgroud)
我使用do.calltio将它们全部合并。请注意,所有文件都具有相同的格式。
sr.master <- do.call("rbind", lapply(file_list, read.csv, sep = ";", header = TRUE))
names(sr.master)
str(sr.master)
Run Code Online (Sandbox Code Playgroud)
但是,在检查完生成的文件后,我意识到只有第一个文件已导入。是什么导致此问题?
> str(sr.master)
'data.frame': 1941 obs. of 8 variables:
$ Berechnung: Factor w/ 51 levels "Berechnung 1",..: 51 1 12 23 34 45 47 48 49 50 ...
$ Situation : Factor w/ 13 levels "Nach Massnahme 0",..: 6 6 6 6 6 6 6 6 6 …Run Code Online (Sandbox Code Playgroud) 将list包含日期转换为a时遇到麻烦date.frame,因为使用unlist命令时日期会转换为整数.
将list在我的工作似乎与此类似,只是方式更多的数据帧:
list(
data.frame(
date = as.POSIXct(Sys.time() + days(seq(0, 4))),
value = c(4,5,1,7,9)),
data.frame(
date = as.POSIXct(Sys.time() + days(seq(5, 9))),
value = c(3,3,5,1,7))
)
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法将其转换为单个data.frame看起来像这样:
date value
1 2017-07-24 14:30:18 4
2 2017-07-25 14:30:18 5
3 2017-07-26 14:30:18 1
4 2017-07-27 14:30:18 7
5 2017-07-28 14:30:18 9
6 2017-07-29 14:30:18 3
7 2017-07-30 14:30:18 3
8 2017-07-31 14:30:18 5
9 2017-08-01 14:30:18 1
10 2017-08-02 14:30:18 7
Run Code Online (Sandbox Code Playgroud) 我有一个向量“ a”,它是行索引的数字向量。我想从称为“数据”的数据框中获取这些行以及它们旁边的下20行。有没有办法做到这一点?
我已经尝试过:
data2 <- data[a:a+20,]但是没有成功。
如果a <- c(1, 21, 42)
我想从“数据”中提取行1:20、21:41和42:62,并将其存储在另一个对象中。
我有一个如下所示的列表。
p1
$ColA
Var1 Freq
1 asgfg 2.1
2 dds 2.1
3 dfg 4.3
4 dfh 2.1
$ColB
Var1 Freq
1 A 44.7
2 B 55.3
Run Code Online (Sandbox Code Playgroud)
我需要的如下所示。基本上,我想将它们组合成一个数据框。
df
Col Var1 Freq
ColA asgfg 2.1
ColA dds 2.1
ColA dfg 4.3
ColA dfh 2.1
ColB A 44.7
ColC B 55.3
Run Code Online (Sandbox Code Playgroud) 我有一个结构相同的csv文件目录.我正在尝试将所有这些加载到单个data.frame中.目前我使用lapply()与read.csv()获得data.frames的名单,我期待一个优雅的方式来此列表转换为避免外在的循环一个data.frame.
我的结果lapply(list.of.file.names,read.csv)可以近似为这个结构:
list.of.dfs <- list(data.frame(A=sample(seq(from = 1, to = 10), size = 5),
B=sample(seq(from = 1, to = 10), size = 5)),
data.frame(A=sample(seq(from = 1, to = 10), size = 5),
B=sample(seq(from = 1, to = 10), size = 5)),
data.frame(A=sample(seq(from = 1, to = 10), size = 5),
B=sample(seq(from = 1, to = 10), size = 5))
)
Run Code Online (Sandbox Code Playgroud)
适用于任意长度列表的以下行的优雅版本是什么:
one.data.frame <- rbind(list.of.dfs[[1]],list.of.dfs[[2]],list.of.dfs[[3]])
Run Code Online (Sandbox Code Playgroud)
我可以使用for循环执行此操作,但是有基于矢量的解决方案吗?
我在R中有大约500个具有两列和不同行数(从10到30)的数据帧.我还有一个包含数据帧名称的字符向量.我现在希望将所有这些数据帧捆绑到一个列表中,这样我就可以使用数据框名称来引用这些列表元素.我正在考虑使用循环来遍历数据帧并在每个步骤中将它们添加到列表中但我无法将其拉出来.