R 我的数据表()的计数是1

R 我的数据表()的计数是1,r,count,R,Count,在R中,如果我有一个数据结构,我的_数据如下: participant var score ` 1 a ... b ... c ... a ... 2 b ... a ... c ... c ... 3 b ... c ...

在R中,如果我有一个数据结构,我的_数据如下:

participant var score
`
1           a   ... 
            b   ...
            c   ...
            a   ...
2           b   ...
            a   ...
            c   ...
            c   ...
3           b   ...
            c   ...
            a   ...
            b   ...
我编写了一个函数来计算var的频率,通过表(my_data$participant,my_data$var),结果是:

   a  b  c
1  1  0  0
2  0  1  0
3  0  1  0
虽然它应该是

   a  b  c
1  2  1  1
2  1  1  2
3  1  2  1
发生这种情况的原因是函数仅选择“参与者”不为空的行。
是否有一种默认方式告诉软件将这些空行关联到同一参与者

您可以使用zoo软件包中的
na.locf

# sample data
my_data = data.frame(participant=c("1","","","2","",""),var = c("a","a","b","a","a","c"),stringsAsFactors = F)

library(zoo)
# first, replace empty elements with NA, then use na.locf
my_data$participant[nchar(my_data$participant)==0]=NA
my_data$participant = na.locf(my_data$participant)
table(my_data$participant, my_data$var)
输出:

    a b c
  1 2 1 0
  2 2 0 1

希望这有帮助

请张贴可复制的代码和数据。否则没人能帮上忙。table()一直运行良好,IME。检查某些条目是否为
NA
,如果是,请使用
表格(…,useNA='ifany'…)
填写空值。使用
zoo::na.locf
或类似工具以最后一次观察替换空白。