你好我在8个obs 60变量的R中有一个数据帧记录,缺失值被NA替换,其他值是单词。
当我尝试将数据框列表为feeds<-table(record)
时,我收到错误消息:
Error in table(record) : attempt to make a table with >= 2^31 elements
我的数据框的一些示例元素/结构是
INC - CORP Application Issue INC - CORP Issue INC - PC Software Issue
Affected User Affected User Affected User
Attachment Attachment Attachment
Description / Priority Business Critica.. Configuration Item
Knowledge Search Client ID Contact Info
NA Description / Pr.. NA
我不理解错误,因为数据框中的元素显然甚至不接近2 ^ 31。
感谢您的时间。
答案 0 :(得分:3)
它的旧主题,但它可能会帮助其他人,因为我发布它。 我遇到了同样的问题,我从某个地方发现了它的在线解决方案,我不记得了,它对我来说非常有用。 希望能为需要的人服务。
solution<-as.data.frame(table(unlist(record)))
答案 1 :(得分:2)
您当前的代码正在尝试制作60维表,返回60个变量的每个唯一组合的计数。因此&gt; 2 ^ 31个元素错误。
您是否希望sapply(record, table)
单独列出每个变量?
答案 2 :(得分:0)
主要问题是数据框中的复杂程度。有两种方法可以解决这个问题:
在对data.frame进行子集化后调用droplevels
。例如:
feed&lt; - droplevels(record)
使用apply
家庭功能,例如前面提到的sapply
人。例如:
feeds&lt; - apply(record,1,table)#output作为对象存储 馈送
答案 3 :(得分:0)
我有同样的问题。对我有用的是删除像这样的NA
df <- df[!is.na(df)]
答案 4 :(得分:0)
我也遇到了这个问题。对我有用的是使用以下几行将数据框中的每一列转换为数字或字符:
df$x = as.numeric(as.character(df$x))
df$y = as.numeric(as.character(df$y))
df$z= as.numeric(as.character(df$z))
这将删除数据框中每个变量的因子水平。如果您需要因子水平,我不建议您这样做,但是如果您只需要原始值,它将很好地工作。