R从整数变量计算变量 - 怎么样?
R calculated variable from integer variable - how?
我有一个整数变量 (HTB) - 它的值可以是 1 或 2。
我做了一些计算,其中涉及按用户名汇总 HTB - 所以我知道用户获得 1 或 2 响应的频率
因此,生成的数据框显示变量 HTB.1
和 HTB.2
我想计算每个用户的 HTB=2 的百分比,但是这个
results$HTBpercent<-results$HTB.2/(results$HTB.1+results$HTB.2)*100
不行(估计是因为真的是一个变量)
我该怎么做?
需要按用户名分组并意识到您可能只有一个 HTB 变量并且 R 不使用句点作为选择运算符。也许(假设您希望在每个用户 ID 中复制这些百分比):
results$HTBpercent<- with(results, ave( HTB, userID, function(x) 100*sum( x==2)/length(x) ) )
你可能有这样的东西:
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$x
是 matrix
,例如:
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
我有一个整数变量 (HTB) - 它的值可以是 1 或 2。
我做了一些计算,其中涉及按用户名汇总 HTB - 所以我知道用户获得 1 或 2 响应的频率
因此,生成的数据框显示变量 HTB.1
和 HTB.2
我想计算每个用户的 HTB=2 的百分比,但是这个
results$HTBpercent<-results$HTB.2/(results$HTB.1+results$HTB.2)*100
不行(估计是因为真的是一个变量)
我该怎么做?
需要按用户名分组并意识到您可能只有一个 HTB 变量并且 R 不使用句点作为选择运算符。也许(假设您希望在每个用户 ID 中复制这些百分比):
results$HTBpercent<- with(results, ave( HTB, userID, function(x) 100*sum( x==2)/length(x) ) )
你可能有这样的东西:
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$x
是 matrix
,例如:
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