R:加权总结

时间:2015-10-07 14:17:03

标签: r summary weighted

我有调查,人们根据他们的受欢迎程度对动物进行分类。 例如:

"first","second","third"
"dog","cat","rabbit"
"cat","rabbit","dog"
"dog","cat","rabbit"
"dog","cat","rabbit"

我想要图表,它显示顺序。 因此,第一列中的动物获得重量3,第二重量为2,第三重量为1。

当我这样做时:

data<-read.csv("animals.csv", header=T)

f = summary(data$first)
s = summary(data$second)
t = summary(data$third)

f 中,数组为:

dog      cat 
  3        1

s 是数组:

cat      rabbit
  3           1

t 是数组:

dog      rabbit
  1           3

我显然不能这样做:

graph = 3*f + 2*s + t

因为他们没有相同的列。 存在一些功能如何做到这一点。如何对这三列进行加权组合?

最后我需要:

dog      cat     rabbit
 10        9          5

我是R的乞丐,所以感谢你的帮助。

1 个答案:

答案 0 :(得分:3)

要获得加权数字,您可以执行以下操作:

table(c(rep(data$first, 3), rep(data$second, 2), data$third))

#   cat    dog rabbit 
#    9     10      5

数据

data <- structure(list(first = c("dog", "cat", "dog", "dog"), second = c("cat", 
"rabbit", "cat", "cat"), third = c("rabbit", "dog", "rabbit", 
"rabbit")), .Names = c("first", "second", "third"), class = "data.frame", row.names = c(NA, 
-4L))

注意: 如果导入的数据包含字符作为因素,您可以执行以下操作:

table(c(rep(as.character(data$first), 3), rep(as.character(data$second), 2), as.character(data$third)))