将包含不同维度列表的数据列表导出到Excel ....或txt

时间:2016-07-12 18:55:47

标签: r dataframe datalist

我在尝试导出我的数据列表时遇到问题' c1',它是一个"列表列表"如您所见,有两列和可变数量的行。

> str(c1)

List of 8
 $ :'data.frame':       432 obs. of  2 variables:
  ..$ FECHA              : Date[1:432], format: "1980-01-01" "1980-02-01" "1980-03-01" "1980-04-01" ...
  ..$ El.Hato..21201210.I: num [1:432] 14 57 6 43 67 62 18 33 62 99.9 ...
 $ :'data.frame':       228 obs. of  2 variables:
  ..$ FECHA              : Date[1:228], format: "1996-01-01" "1996-02-01" "1996-03-01" "1996-04-01" ...
  ..$ Guanata..21205890.I: num [1:228] 32.8 90.7 131.4 67.1 84.4 ...
 $ :'data.frame':       348 obs. of  2 variables:
  ..$ FECHA                : Date[1:348], format: "1980-01-01" "1980-02-01" "1980-03-01" "1980-04-01" ...
  ..$ La.Pradera..2120044.C: num [1:348] 5 37 57 40 85 NA NA NA 33 184 ...
 $ :'data.frame':       432 obs. of  2 variables:
  ..$ FECHA                    : Date[1:432], format: "1980-01-01" "1980-02-01" "1980-03-01" "1980-04-01" ...
  ..$ Las.Margaritas..2120071.C: num [1:432] 11 14 3 15 66 45 6 7 12 29 ...
 $ :'data.frame':       432 obs. of  2 variables:
  ..$ FECHA                      : Date[1:432], format: "1980-01-01" "1980-02-01" "1980-03-01" "1980-04-01" ...
  ..$ Pantano.Redondo..21201060.I: num [1:432] 33.4 80.7 64.1 67.2 122.3 ...
 $ :'data.frame':       336 obs. of  2 variables:
  ..$ FECHA               : Date[1:336], format: "1987-01-01" "1987-02-01" "1987-03-01" "1987-04-01" ...
  ..$ Sabaneta..23065100.I: num [1:336] 140.8 46.7 114.7 73.4 129.2 ...
 $ :'data.frame':       384 obs. of  2 variables:
  ..$ FECHA                 : Date[1:384], format: "1982-01-01" "1982-02-01" "1982-03-01" "1982-04-01" ...
  ..$ Santillana..21206020.I: num [1:384] 38.5 89.8 52.5 187.7 119.4 ...
 $ :'data.frame':       336 obs. of  2 variables:
  ..$ FECHA    : Date[1:336], format: "1987-01-01" "1987-02-01" "1987-03-01" "1987-04-01" ...
  ..$ Tabio.GJA: num [1:336] NA NA NA NA NA ...

我尝试使用常用的导出数据函数,以及此处找到的其他解决方案,但问题是我的数据列表的维度......

write.xlsx(mydata, "c:/mydata.xlsx")
write.table(c1, "c:/cluster1.txt", sep="\t")

我总是得到这个错误

Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,  : 
  arguments imply differing number of rows: 432, 228, 348, 336, 384

我赞不绝口。

凯文戴维森

1 个答案:

答案 0 :(得分:0)

查看write.xlsxwrite.table的帮助文件。这些函数接受数据帧作为参数,而不是列表。您需要将此列表转换为数据帧(使用ldply中的plyr),或者使用for循环编写8个不同的数据帧,如akrun所建议的那样。如果您只想稍后保存对象以便在R中使用,请使用savesaveRDS.再次检查这些命令的帮助文件,并确定哪个最符合您的需求。