0

df に条件付きで列を追加するのに問題があります。たとえば、Var A の値に応じて、列 VarB と VarC にクラス値を追加したいと思います。

たとえば、VarA が "a"、"c"、"e" の場合は VarB に "yes" を追加し、"b" と "d" の場合は "no" を追加します。また、VarA が「a」または「e」に等しい場合、VarC に「1」を追加したいと思います。VarA が「b」または「d」に等しい場合、VarC に「2」。そして、VarAが「c」に等しい場合、VarCに「3」。

VarA
 a     
 b     
 c     
 d     
 e 

任意のヒント?

4

2 に答える 2

3

たぶんこれは役に立つかもしれません

DF <- data.frame(VarA=letters[1:4]) # this is your data.frame
    VarA
1    a
2    b
3    c
4    d

DF$VarB <- ifelse(VarA %in% c('a','c','e'), 'yes', 'no')
DF$VarC <- ifelse(VarA %in% c('a','e'), 1, ifelse(VarA %in% c('b','d'),2,3))
DF
  VarA VarB VarC
1    a  yes    1
2    b   no    2
3    c  yes    3
4    d   no    2

transform関数も使えます。

DF <- data.frame(VarA=letters[1:4])
transform(DF, 
          VarB=ifelse(VarA %in% c('a','c','e'), 'yes', 'no'), 
          VarC=ifelse(VarA %in% c('a','e'), 1, ifelse(VarA %in% c('b','d'),2,3)))
  VarA VarB VarC
1    a  yes    1
2    b   no    2
3    c  yes    3
4    d   no    2
于 2012-10-11T13:29:01.610 に答える
1

次の精神で何かをしてください。

cond1 <- data$VarA %in% c("a","c","e")
data$VarB[cond1] <- "yes"
cond2 <- data$VarA %in% c("b","d")
data$VarB[cond2] <- "no"
cond3 <- data$VarA %in% c("a","e")
data$VarC[cond3] <- 1
cond4 <- data$VarA %in% c("b","d")
data$VarC[cond4] <- 2

最後はあなたに任せます。

于 2012-10-11T13:24:34.967 に答える