【问题标题】:frequency table doesn't work for subsets频率表不适用于子集
【发布时间】:2017-10-10 20:37:07
【问题描述】:

我有一个数据集并定义了不同的子集,以便查看虚拟变量的频率。

copying <- subset (reversals, Task =='copy')
writing <- subset (reversals, Task =='write')

编辑:我的数据如下所示:

ID   task  X1  X2  X3  X4
 1   copy   0   1   0   0
 1   write  1   0   0   1
 2   copy   0   1   1   0
 2   write  1   1   1   0
 3   copy   0   1   0   0
 3   write  0   0   0   1

我在完整的数据集和子集上运行了这段代码:

hfgk.reversals0 <- as.data.frame(t(sapply(reversals[,11:26], table)))
hfgk.reversals0$Sum <- rowSums(hfgk.reversals0)
hfgk.reversals <- data.frame(hfgk.reversals0)
hfgk.reversals

hfgk.reversals0.copying <- as.data.frame(t(sapply(copying[,11:26], table)))
hfgk.reversals0.copying$Sum <- rowSums(hfgk.reversals0.copying)
hfgk.reversals.copying <- data.frame(hfgk.reversals0.copying)
hfgk.reversals.copying

对于完整的数据集,我得到了一张漂亮的表格:

    X0  X1  Sum
X1  1600  16  1616
X2  1614  2   1616

但不适用于子集:

X1 X10 X12 X14 X15 X16 X18 X2 X3 X4 X44 X5 X6 X7 X9 X17
 1 369, 1 370 370 370     370 370 370 366, 4 370 370 369, 1 368, 2 352, 18 370 366, 4 370

也包含正确的信息,但结构不同。 对于第一个表,变量描述如下:X0: int 1600 1614,子集看起来像这样:$ X1: 'table' int [1:2(1d)] 369 1 - attr(*,dimnames) = 1 ...$ 的列表:字符“0”“1”

我非常感谢任何帮助,因为我并没有真正看透底层机制。

非常感谢您!

【问题讨论】:

    标签: r subset dummy-variable


    【解决方案1】:

    你尝试过使用括号子集吗?

    copying <- reversals[reversals$Task =='copy',]
    writing <- reversals[reversals$Task =='write',]
    

    您没有包含任何可重现的数据,所以我无法自己测试。

    【讨论】:

    • 谢谢!是的,结果是一样的。很抱歉没有提供数据。你能告诉我,如何上传数据文件吗?
    • 您的数据集是什么文件类型?你的意思是上传到这里,还是读入R?
    • 这是一个.txt,当然我也可以将它导出为另一种格式。我的意思是,我怎样才能向您提供可重现的数据
    • 与您包含显示成功摘要输出的表格的方式相同,但添加一些额外的观察结果以显示您的数据的代表性样本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2020-04-02
    相关资源
    最近更新 更多