相关疑难解决方法(0)

将多个.csv文件合并为一个

我知道这个问题已经被问过多次了,但是尽管尝试应用上述解决方案,但我还是无法解决我的小问题:

我已经保存了所有要合并到一个文件夹中的.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)

csv r rbind do.call read.csv

3
推荐指数
2
解决办法
6748
查看次数

将日期转到R中的数据框

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)

r date list dataframe

2
推荐指数
1
解决办法
1063
查看次数

有没有一种方法可以基于行索引向量获取数据帧行?

我有一个向量“ a”,它是行索引的数字向量。我想从称为“数据”的数据框中获取这些行以及它们旁边的下20行。有没有办法做到这一点?

我已经尝试过:
data2 <- data[a:a+20,]但是没有成功。

如果a <- c(1, 21, 42) 我想从“数据”中提取行1:20、21:41和42:62,并将其存储在另一个对象中。

r

2
推荐指数
1
解决办法
80
查看次数

将数据框列表转换为具有 id 列的单个数据框

我有一个如下所示的列表。

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)

r list dataframe

2
推荐指数
1
解决办法
78
查看次数

将任意长的数据帧列表简化为单个数据帧

我有一个结构相同的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

0
推荐指数
1
解决办法
319
查看次数

如何在不使用循环的情况下在R中创建大型列表

我在R中有大约500个具有两列和不同行数(从10到30)的数据帧.我还有一个包含数据帧名称的字符向量.我现在希望将所有这些数据帧捆绑到一个列表中,这样我就可以使用数据框名称来引用这些列表元素.我正在考虑使用循环来遍历数据帧并在每个步骤中将它们添加到列表中但我无法将其拉出来.

r list

0
推荐指数
1
解决办法
71
查看次数

标签 统计

r ×6

list ×3

dataframe ×2

csv ×1

date ×1

do.call ×1

rbind ×1

read.csv ×1