R从整数变量计算变量 - 如何?

时间:2016-03-08 00:48:20

标签: r int calculated-field

我有一个变量(HTB)是一个整数 - 它的值可以是1或2.

我做了一些涉及通过用户名聚合HTB的计算 - 所以我知道用户多久得到1或2个响应

结果数据框因此显示变量HTB.1HTB.2

我想计算每个用户的HTB = 2的百分比,但是

results$HTBpercent<-results$HTB.2/(results$HTB.1+results$HTB.2)*100

不起作用(大概是因为它实际上是一个变量)

我该怎么做?

2 个答案:

答案 0 :(得分:1)

需要按用户名分组,并意识到您可能只有一个HTB变量,并且R不使用句点作为选择运算符。也许(假设您希望在每个用户ID中复制这些百分比):

 results$HTBpercent<- with(results, ave( HTB, userID, function(x) 100*sum( x==2)/length(x) ) )

答案 1 :(得分:0)

你可能有类似的东西:

df <- aggregate(c(1,1,2,2), list(c(1,2,1,2)), FUN=table)
df

#  Group.1 x.1 x.2
#1       1   1   1
#2       2   1   1

...其中df$xmatrix,例如:

df$x
#     1 2
#[1,] 1 1
#[2,] 1 1

因此,

df$perc2 <- df$x[,"2"] / rowSums(df$x)
df

#  Group.1 x.1 x.2 perc2
#1       1   1   1   0.5
#2       2   1   1   0.5