嗨,感謝您閱讀我。我有一個包含 3 個向量的資料集,我想比較前 2 個向量。這個想法是這樣的:如果我在第一列中至少有一個值與第二列中的值匹配,那么我想創建一個新變數來獲取第三列中的值(它與第二列中的值匹配柱子)。我不太確定該怎么做,我嘗試了 any() 函式,但它沒有按我的意愿作業
例如,我有以下資料框:
x <-
data.frame(
val1 = c(10,10,10,1,12,15),
val2 = c(5,4,3,2,1,6),
val3 = c(100,200,200,100,400,411)
)
我希望得到以下輸出(因為數字 1 存在于前 2 列中):
data.frame(
val1 = c(10,10,10,1,12,15),
val2 = c(5,4,3,2,1,6),
val3 = c(100,200,200,100,400,411),
val4 = c(NA,NA,NA,NA,400,NA)
)
謝謝您的幫助
uj5u.com熱心網友回復:
您可以使用%in%來確定val2匹配的位置val1。
library(dplyr)
x %>%
mutate(val4 = ifelse(val2 %in% val1, val3, NA))
val1 val2 val3 val4
1 10 5 100 NA
2 10 4 200 NA
3 10 3 200 NA
4 1 2 100 NA
5 12 1 400 400
6 15 6 411 NA
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/458757.html
上一篇:計算每年銷售額排名前N的產品
