0

このようにフォーマットされたデータを使用して、C の特定の値に対して特定の f 値を j に、j 値を f に変更したい。たとえば、c が 6 7 または 2 の場合、列 A で j を f に交換したい。

      A    B           C    
      f    2           2   
      f    2           6 
      j    2           7 
      j    3           3 
      j    3           4 
      f    3           8 
      j    2           2   
      j    2           6 
      f    2           7 
      f    3           3 
      f    3           4 
      j    3           8
4

2 に答える 2

1

おそらくこのようなもの

DF <- read.table(textConnection('A    B           C    
  f    2           2   
  f    2           6 
  j    2           7 
  j    3           3 
  j    3           4 
  f    3           8 
  j    2           2   
  j    2           6 
  f    2           7 
  f    3           3 
  f    3           4 
  j    3           8'), header=TRUE, stringsAsFactors = FALSE)

DF
##    A B C
## 1  f 2 2
## 2  f 2 6
## 3  j 2 7
## 4  j 3 3
## 5  j 3 4
## 6  f 3 8
## 7  j 2 2
## 8  j 2 6
## 9  f 2 7
## 10 f 3 3
## 11 f 3 4
## 12 j 3 8


DF[DF$C %in% c(6, 7, 2), "A"] <- ifelse(DF[DF$C %in% c(6, 7, 2), "A"] == "f", "j", "f")

DF
##    A B C
## 1  j 2 2
## 2  j 2 6
## 3  f 2 7
## 4  j 3 3
## 5  j 3 4
## 6  f 3 8
## 7  f 2 2
## 8  f 2 6
## 9  j 2 7
## 10 f 3 3
## 11 f 3 4
## 12 j 3 8
于 2013-03-20T02:42:41.547 に答える
1

不正行為のようです:

x[x$C %in% c(6,7,2),'A'] <- levels(x$A)[3 - as.numeric(x[x$C %in% c(6,7,2),'A'])]

> x
##    A B C
## 1  j 2 2
## 2  j 2 6
## 3  f 2 7
## 4  j 3 3
## 5  j 3 4
## 6  f 3 8
## 7  f 2 2
## 8  f 2 6
## 9  j 2 7
## 10 f 3 3
## 11 f 3 4
## 12 j 3 8
于 2013-03-20T02:54:33.660 に答える