为什么我会得到can';t在R中创建一个包含2^31个以上元素的表格

为什么我会得到can';t在R中创建一个包含2^31个以上元素的表格,r,R,您好,我在R中有一个8维obs 60变量的数据帧记录,缺失的值替换为NA,其他值为单词 当我尝试像这样将数据帧制成表格时,当前代码试图创建一个60维的表格,返回60个变量的每个唯一组合的计数。因此,>2^31个元素是错误的 是否希望sapply(记录、表格)将每个变量单独制成表格?主要问题是数据框中的复杂级别。有两种方法可以解决此问题: 在对data.frame进行子集设置后调用droplevels。例如: feed我也有同样的问题。对我有用的是像这样移除NA df <- df[!is.n

您好,我在R中有一个8维obs 60变量的数据帧记录,缺失的值替换为NA,其他值为单词


当我尝试像这样将数据帧制成表格时,当前代码试图创建一个60维的表格,返回60个变量的每个唯一组合的计数。因此,>2^31个元素是错误的


是否希望
sapply(记录、表格)
将每个变量单独制成表格?

主要问题是数据框中的复杂级别。有两种方法可以解决此问题:

  • 在对data.frame进行子集设置后调用
    droplevels
    。例如:


    feed我也有同样的问题。对我有用的是像这样移除NA

    df <- df[!is.na(df)]
    

    df这是一个老话题,但我之所以发布它,可能对其他人有所帮助。
    我也有同样的问题,我在不记得的地方找到了在线解决方案,它对我非常有效。
    希望对需要帮助的人有用

    solution<-as.data.frame(table(unlist(record)))
    

    解决方案我也有这个问题。对我有效的方法是使用以下行将数据帧中的每列转换为数字或字符:

    df$x = as.numeric(as.character(df$x))
    df$y = as.numeric(as.character(df$y))
    df$z= as.numeric(as.character(df$z))
    

    这将删除数据帧中每个变量的因子级别。如果您需要系数级别,我不建议这样做,但如果您只需要原始值,这将很好。

    尝试
    表格(data.frame(a=1:3,b=letters[1:3],c=letters[1:3])
    以查看发生了什么。错误消息会告诉您出现错误的确切原因。不确定我是否在跟踪您,我想让数据框成为表,就像它在视图(dataframe)中所显示的一样。我试过SaApp,它似乎给了我一个列表,看起来不是按行和列排序的。你可以扩展你的示例数据来显示列名,并包括一个你想要的结果的示例?我不清楚你想要什么。
    sapply
    命令应该为您提供一个表列表,每个表对应一个变量,以及该变量值的频率。示例中的顶行是列名,我认为table方法不喜欢数据框中的NA,它将其视为Null。我只想将数据框转换为table,因为它是可以的。请使用代码格式化工具格式化代码?并可能解释它的作用以及它与
    table(record)
    的区别。加上这一点,这将是一个非常好的答案!你也可以做solution=2^31元素,我的第一个解决方案解决了这个错误,只要你没有得到这个错误,就没有太大的区别。
    solution<-as.data.frame(table(unlist(record)))
    
    df$x = as.numeric(as.character(df$x))
    df$y = as.numeric(as.character(df$y))
    df$z= as.numeric(as.character(df$z))