0

我想计算给定列中重复出现的数值变量的数量。我的数据集是:mydata

我有一个看起来像这样的数据框:

mydata <- structure(list(VARIABLE = c(1, 1, 2, 3, 3, 3, 4, 4)), 
  .Names = "VARIABLE",   row.names = c(NA, -8L), class = "data.frame")

mydata
##     VARIABLE
## 1        1
## 2        1
## 3        2
## 4        3
## 5        3
## 6        3
## 7        4
## 8        4

我想计算列中 1s,2s,3s,4s 的数量VARIABLE(两个 1,一个 2,三个 3,两个 4)。无论如何我可以在不安装额外软件包的情况下做到这一点吗?

4

2 回答 2

4

是的,使用table如下,它来自base包:

mydata <- data.frame(VARIABLE = c(1, 1, 2, 3, 3, 3, 4, 4))
table(mydata$VARIABLE)

# 1 2 3 4 
# 2 1 3 2 

正如 Maiasaura 所建议的,您可以将输出转换为一个不错的 data.frame:

data.frame(table(mydata$VARIABLE))
#   Var1 Freq
# 1    1    2
# 2    2    1
# 3    3    3
# 4    4    2
于 2012-09-11T01:48:06.463 回答
0

作为替代方案,?table您也可以?rle在想要检测变量/向量中特定重复值的“运行”的情况下使用。在这种情况下,您将获得与使用该table函数相同的结果,但情况并非总是如此。

mydata <- data.frame(VARIABLE = c(1, 1, 2, 3, 3, 3, 4, 4))
rle(mydata$VARIABLE)

结果:

Run Length Encoding
  lengths: int [1:4] 2 1 3 2
  values : num [1:4] 1 2 3 4

您也可以对函数的结果进行子集化rle,如下所示:

rle(mydata$VARIABLE)$values
[1] 1 2 3 4

rle(mydata$VARIABLE)$lengths
[1] 2 1 3 2
于 2012-09-11T02:13:46.003 回答