簡體   English   中英

根據R中的行名向列添加文本

[英]Adding text to a column based on the row name in R

我是R的新用戶。我編寫了一個if函數,該函數使我的數據行長度超出設置的長度范圍。 輸出顯示如下:

1690 Field mouse 100

(行名,種類,長度)

我有一個質量列( df$Quality ),我想為范圍以外的所有列添加注釋。 是否可以編寫一些基於行名稱的代碼,即在df$Quality列中的此行添加此文本"Query: size above range"

另一個解決方案,特別是如果您的數據集很大的話,是使用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
...

也許這個例子可以幫助您:

> 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)進行類似處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM