/ / Rの行名に基づいて列にテキストを追加する - r

R - rの行名に基づいて列にテキストを追加する

私はRの新しいユーザーです。 if 設定された長さの範囲外の長さを持つ私のデータの行を与える関数。出力は次のようになります。

1690 Field mouse 100

(名字、種、長さ)

品質の高いコラムがあります(df$Quality)範囲外のものすべてにメモを追加したいと思います。行名に基づくコードを書くことは可能ですか。 df$Quality 列このテキストを追加 "Query: size above range".

回答:

回答№1は0

たぶん、この例は助けることができます:

> df <- data.frame(Rowname=1:6, Species=letters[1:6],length=rep(c(99,101),times=3))
> df
Rowname Species length
1       1       a     99
2       2       b    101
3       3       c     99
4       4       d    101
5       5       e     99
6       6       f    101
> df[df$length > 100,"Quality"] <- "Query: size above range"
> df
Rowname Species length                 Quality
1       1       a     99                    <NA>
2       2       b    101 Query: size above range
3       3       c     99                    <NA>
4       4       d    101 Query: size above range
5       5       e     99                    <NA>
6       6       f    101 Query: size above range

代わりの出発点として、同様の処理を行うためにrow.names(df)を使用することもできます。


回答№2の場合は1

特にあなたが大きなデータセットを持っているならば、もう一つの解決策は dplyr パカゲ:

library(dplyr)
mtcars %>%
mutate(Quality=ifelse(mpg>20, "Query: size above range", "Query: size below range"))

mpg cyl  disp  hp drat    wt  qsec vs am gear carb                 Quality
1  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 Query: size above range
2  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 Query: size above range
3  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 Query: size above range
4  21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 Query: size above range
5  18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2 Query: size below range
...