将多个分类值分配给r中的一系列数据帧变量

时间:2014-08-15 12:03:40

标签: r variable-assignment multiple-variable-return

说我在R

中输入了以下数据
G <- c(1,1,0,0,0,0,0,0,0) 
H <- c(0,1,1,0,0,0,0,0,0) 
I <- c(0,0,0,0,1,1,0,0,0) 
J <- c(0,0,0,1,0,1,0,0,0) 
K <- c(0,0,0,0,0,0,1,1,0) 
L <- c(0,0,0,0,0,0,0,1,1)

list <- data.frame(G,H,I,J,K,L)

我想分配

  • &#39;一个&#39;任何观察值的值,其中1出现在G或H中或出现在两者中
  • &#39; B&#39;观察结果,其中1出现在I和J的任何一个/两个中。
  • &#39; C&#39;在K和L中均出现1的观察结果。

1 个答案:

答案 0 :(得分:1)

这是一个简单的解决方案,通过创建变量然后使用子集为其分配值。这对你的目的是否足够?

list$Z <- NA
list$Z[list$G|list$H] <- "a"
list$Z[list$I|list$J] <- "b"
list$Z[list$K|list$L] <- "c" 
list

编辑: 根据{{​​3}}的建议,使用within()代码可以更清晰,更易读(也可能更高效):

list$Z <- NA
within(list, Z[G|H]<-"a"; Z[I|J]<-"b"; Z[K|L]<-"c")