0
這是一個我認爲的簡單問題,但我一直無法使其工作。我有一個數據框與id變量(唯一行),並與一系列的二進制(0,1)結果的列。用列表的自動搜索生成新的計算變量
# ID Var1 Var2 Var3 Var4 Var5
# 1 0 0 0 1 0
# 2 1 0 0 0 0
# 3 0 1 0 0 0
我有變量 「類」
ClassList = list(Class1 = c("Var1", "Var2"), Class2 = c("Var3", "Var4","Var5")
的名單,我想產生一個新變量的Class1 = 1,如果VAR1 | Var2 = 1,否則爲0。
我可以做到這一點少用優雅的方式,但想做出一個更加自動化的功能/循環/應用,將創造ClassVar,搜索班級名冊和重新編碼適當地生成以下內容:
# ID Var1 Var2 Var3 Var4 Var5 Class1 Class2
# 1 0 0 0 1 0 0 1
# 2 1 0 0 0 0 1 0
# 3 0 1 0 0 0 1 0
有一個很多Var's和Classe的鞏固,所以用if_else做蠻力並不會有效。有什麼建議麼?
我做到目前爲止的部分是生成類變量:
for (I in 1:length(ClassList)) {
classname <- names(ClassList)[I]
df[,paste0(classname)] <- NA
}
這工作完美,謝謝! – KevinM