Я пытаюсь объединить некоторые данные и я хотел бы взять пропорции некоторых переменных и сделать их значения в столбцах, как показано нижеПостроение списка выражений в цикле в R
library(data.table)
testDT <- data.table(z=sample(1:5, 2500000, replace=TRUE), a=sample(1:20, 2500000, replace=TRUE), b=sample(1:30, 2500000, replace=TRUE), c=sample(1:10, 2500000, replace=TRUE))
setkey(testDT, z)
testDT.AG=testDT[, list(
a_Mean=mean(as.numeric(a), na.rm = TRUE),
a_1_prop=length(which(a==1))/length(which(a>0)),
a_2_prop=length(which(a==2))/length(which(a>0)),
a_3_prop=length(which(a==3))/length(which(a>0)),
a_4_prop=length(which(a==4))/length(which(a>0)),
a_5_prop=length(which(a==5))/length(which(a>0)),
a_6_prop=length(which(a==6))/length(which(a>0)),
a_7_prop=length(which(a==7))/length(which(a>0)),
a_8_prop=length(which(a==8))/length(which(a>0)),
a_9_prop=length(which(a==9))/length(which(a>0)),
a_10_prop=length(which(a==10))/length(which(a>0))
), by=list(z)]
Я хотел бы построить этот список с петлей, как показано ниже:
testDT.AG=testDT[, list(
a_Mean=mean(as.numeric(a), na.rm = TRUE),
for (i in c(1:10))
{
assign(paste("a_", i, "_prop"), length(which(a==i))/length(which(a>0))),
}
), by=list(z)]
, но это не работает ...
есть в любом случае, чтобы построить список выражений, как это в цикле?
Спасибо заранее!
Совершенных, спасибо так много! – user2386854