簡體   English   中英

R-如何通過子集條件將數據添加到新列?

[英]R - How to add data to a new column by subset conditions?

我正在嘗試根據另一列中的值將值添加到新列中。 以虹膜數據為例,我的基本邏輯是“如果iris $ Sepal.Length> 5,則iris $ size =='TRUE'”。

> head(iris, 2)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa

以鳶尾花數據為例,我的基本邏輯是“如果iris $ Sepal.Length> 5,那么iris $ size =='TRUE'”產生:

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species size
1          5.1         3.5          1.4         0.2  setosa   TRUE
2          4.9         3.0          1.4         0.2  setosa   NA

我可以對數據進行子集設置,但無法獲取將值傳回的語法。 像這樣嗎

subset(iris, iris$Sepal.Length >= 5) %>% iris$size == 'TRUE'

您可以使用ifelse語句執行類似的ifelse

iris$Size <- ifelse(iris$Sepal.Length >= 5, "TRUE", "FALSE")

使用dplyr 邏輯表達式的輸出為TRUE/FALSE 最好不要創建字符輸出

library(dplyr)
iris %>%
    mutate(size = Sepal.Length >=5)

要么:

iris$size <- iris$Sepal.Length >= 5

或者,如果您想走整潔的路線

iris %>% mutate(size = Sepal.Length >= 5)
iris$size[iris$Sepal.Length>=5] <- TRUE

這基本上讀為“對於iris $ Sepal.Length等於或大於5的那些行,將TRUE放入iris $ size中”。

暫無
暫無

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

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