我有這兩個資料框(想象它們很大):
df = data.frame(subjects = 1:10,
var1 = c('a',NA,'b',NA,'c',NA,'d','e','f','g'))
g = data.frame(subjects = c(1,3,5,7,8,9,10),
score = c(1,2,1,3,2,4,1) )
我想將scoreg 資料幀中的變數放入 df 資料幀,條件是如果 var1 = NA,則 df 中的分數將等于 NA。我們怎樣才能用一個簡單的函式來做到這一點?謝謝。
第二種情況:
df = data.frame(subjects = 1:10,
var1 = c('a','e','b','c','c','b','d','e','f','g'))
g = data.frame(subjects = c(1,3,5,7,8,9,10),
score = c(1,2,1,3,2,4,1) )
現在我希望每個未計算為 NA 的科目的分數如下:
df = data.frame(subjects = 1:10,
var1 = c('a','e','b','c','c','b','d','e','f','g'),
score = c(1,NA,2,NA,1,NA,3,2,4,1))
uj5u.com熱心網友回復:
我們可以做一個連接by'subjects',它回傳'score',NA其中'g'中沒有對應的'subject'。如果我們需要在NA'var1' 為 'score' 時也為 'score' NA,請replace在下一步中使用 NA 檢查 'var1'
library(dplyr)
df <- left_join(df, g, by= "subjects") %>%
mutate(score = replace(score, is.na(var1), NA))
-輸出
df
subjects var1 score
1 1 a 1
2 2 e NA
3 3 b 2
4 4 c NA
5 5 c 1
6 6 b NA
7 7 d 3
8 8 e 2
9 9 f 4
10 10 g 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/519504.html
標籤:r数据框子集呐
