2016-03-08 2 views
0

У меня есть переменная (HTB), которая является целым числом - она ​​может иметь значение 1 или 2.R рассчитанная переменная из целочисленной переменной - как?

Я сделал некоторые калакуляции, которые включали в себя агрегацию HTB по имени пользователя - поэтому я знаю, как часто пользователь получили 1 или 2 ответа

Полученный кадр данных, следовательно, отображает переменные HTB.1 и HTB.2

Я хотел бы вычислить процент HTB = 2 для каждого пользователя, но это

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

не работает (предположительно, потому что это действительно одна переменная)

Как это сделать?

ответ

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$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 
+0

спасибо, это сработало красиво! – Rnovice

1

Нужно группировать по имени пользователя и понимать, что у вас, вероятно, есть только одна HTB-переменная и что R не использует периоды в качестве операторов выбора. Возможно (если вы хотите, чтобы эти проценты повторены в каждой идентификатор пользователя):

results$HTBpercent<- with(results, ave(HTB, userID, function(x) 100*sum(x==2)/length(x))) 
Смежные вопросы