table()函数不能正确转换数据框

时间:2017-07-15 20:33:21

标签: r data-mining

我正在尝试将data.frame转换为table ,不包。基本上我将the following playground example作为参考,并尝试从数据框,包括命名或未命名的向量。数据集来自kaggle的stackoverflow调查。

moreThan1000data.frame个存储国家/地区,这些国家/地区拥有超过1000个stackoverflow用户并按数字列排序,如下所示:

moreThan1000 <- subset(users, users$Number >1000)
moreThan1000 <- moreThan1000[order(moreThan1000$Number),]

cookbook

当我尝试将其转换为table之类的

tbl <- table(moreThan1000) 
tbl <- table(moreThan1000$Country, moreThan1000$Number)
tbl <- table(moreThan1000$Country, moreThan1000$Number, dnn = c("Country","Number"))

每次尝试后,我的转换如下所示: enter image description here

为什么moreThan1000 data.frame不会仅将相关国家/地区发送到table所有国家?在我看来,转换看起来像matrix

2 个答案:

答案 0 :(得分:1)

我认为这是因为各国之间没有关系。每个国家对应一个号码,另一个国家将对应一个不相关的号码。因此,反映这一点的最佳方法是原始2 * len_search,而不是每行只有一个data.frame的表(除非两个国家/地区的stackoverflow用户数相同)。我没有下载您正在使用的数据集,但请查看假数据集会发生什么,按照您的1编号顺序排序。

moreThan1000

为什么你会期望与数据集有什么不同?

答案 1 :(得分:0)

函数“table”用于制表您的数据。

因此它将计算每个值发生的频率(在“数字”列中!)。在您的情况下,每个数字只出现一次,因此不要在此处使用此功能。它工作正常,但这不是你需要的。

您的数据已经是一个列表,无需再次计算频率。

您可以检查是否存在对象转换功能,我猜您正在寻找功能as.table而不是table