簡體   English   中英

根據 R 中其他兩列的比較生成新列值

[英]Generate new column values based on comparison of two other columns in R

我有一個包含以下信息的數據框:

df <- data.frame(Col1 = c("value1", "value1", "value2", "value2"), Col2 = c("value2", "value1", "value2", "value1"), stringsAsFactors = F)

+--------+--------+
|  Col1  |  Col2  |
+--------+--------+
| value1 | value2 |
| value1 | value1 |
| value2 | value2 |
| value2 | value1 |
+--------+--------+

我想根據前兩列的值是否相同來創建具有顏色信息的第三列。 現在我的腳本是這樣的:

for (i in 1:nrow(df)) {
  if(df[i,1] == df[i,2]) {
    df$color[i] <- "black"
  } else {
    df$color[i] <- "grey"
  }
}

這給了我以下 output:

+--------+--------+-------+
|  Col1  |  Col2  | color |
+--------+--------+-------+
| value1 | value2 | grey  |
| value1 | value1 | black |
| value2 | value2 | black |
| value2 | value1 | grey  |
+--------+--------+-------+

這是正確的 output,但我想知道是否有更多的“R”方法可以做到這一點。 我有大量數據,在這里使用 for 循環不是很快。

我認為您可以使用ifelse()一次性完成此操作

df$Col3 = ifelse(df$Col1 == df$Col2, "black", "grey")

暫無
暫無

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

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