r - 从数据帧循环创建矩阵

时间:2016-06-12 14:56:07

标签: r dataframe

我有很多数据框id.1, id.2, ... ,id.21,我想在每个数据框中提取2个数据点:id.1[5,4]id.1[10,6]id.2[5,4]id.2[10,6],第一个数据点是日期,第二个数据点是整数。

我想导出此列表以在.csv文件中获取类似内容:

        V1          V2
1    5/10/2016      1654395291
2    5/11/2016      1645024703
3    5/12/2016      1763825219

我试过了

 x=c(for (i in 1:21) {
            file1 = paste("id.", i, "[5,4]", sep="")}, for (i in 1:21) {
            file1 = paste("id.", i, "[10,6]", sep="")})
 write.csv(x, "x.csv")

但这会导致xNULL。我怎样才能获得这个载体?

1 个答案:

答案 0 :(得分:0)

您的问题是for循环在R中没有返回任何内容。因此您无法像c语句那样在[sl]apply语句中使用它。改为使用dfs <- list(id.1, id.2, id.3, ...) 结构。

我首先会创建一个包含所有数据框的列表:

x <- sapply(dfs, function(df) {
  return(c(df[5,4], df[10,6]))
})

迭代它,如:

data.frame

最后,如果您愿意,您需要转置结果并将其转换为x <- as.data.frame(t(x))

mmap