簡體   English   中英

使用R將一列中的值添加到第二列中缺少值的另一列

[英]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.

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