[英]Adding values from one column to another with missing values in the second column using R
我只想將數據幀df2
z
列中的某些特定值添加到數據幀df1
,但僅用於id = 1和id = 3。
我已經使用ifelse
嘗試了解決方案,但是對於缺少的值,那種解決方案適用於第一個值,直到找到第一個缺少的缺口。
df1$z <- ifelse((df1$id == df2$id), df2$z, 0)
數據示例:
df1 <- read.table(text = "
id v w
1 20 B
3 30 T
", h = T)
df2 <- read.table(text = "
id z b c d e f g h i j
1 100 z w e r y w u y q
2 800 t q j n m q i x z
3 700 f e q b a i e p w
4 300 a b c d a g s y q"
, h = T)
預期結果:
df1_add <- read.table(text = "
id v w z
1 20 B 100
3 30 T 700
", h = T)
讓我們使用dplyr
包中的left_join()
和select()
:
library(dplyr)
df1_add <- df1 %>%
left_join(df2 %>% select(id, z))
df1_add
id v w z
1 1 20 B 100
2 3 30 T 700
你可以試試這個
df_add <- df1
df_add$z = df2[df2$id %in% c(1, 3), ]$z
我們可以使用來自base R
merge
merge(df1, df2[c("id", "z")])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.