【发布时间】:2015-08-26 07:15:54
【问题描述】:
我想从数据框中创建一个频率表并将其保存在 excel 中。使用table() 函数我只能创建特定列的频率。但是我想为所有列创建频率表,并且对于每一列,变量的级别或类型也可能不同。就像数据框的总结一样,但不会有平均值或其他度量,只有频率。
我正在尝试这样的事情
for(i in 1:230){
rm(tb)
tb<-data.frame(table(mydata[i]))
tb2<-cbind(tb2,tb)
}
但它显示以下错误
data.frame(..., check.names = FALSE) 中的错误:参数暗示 不同的行数:15、12
代替cbind(),我还使用了data.frame(),但错误没有改变。
【问题讨论】:
-
lapply(mydata,table)呢? -
错误表示tb2包含15行,tb包含12行。
-
我刚刚尝试使用 write.csv 将其保存在 csv 文件中时
lapply(mydata,table),它会产生错误Error in data.frame(s_id = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, : arguments imply differing number of rows: 24066, 27558, 17779, 18466, 3, 15, 5, 12, 13, 10, 4, 9, 7, 2, 21, 20, 51, 14, 23, 24, 31, 6, 26, 8, 55, 576, 1027, 2459, 363, 1973, 765。在我尝试使用data.frame()时也出现同样的错误。 -
如您所说,变量的级别可能会有所不同。您希望如何创建一个包含所有变量频率的数据框?您可能可以执行诸如最小值、最大值、平均值、频率之类的操作,因为无论如何您的所有列都会产生 3 个值。
标签: r