![](/img/trans.png)
[英]assign values to vector in a dataframe based on conditions from other vectors in R
[英]Assign values in one vector based on matching values in two other vectors in R
我的 dataset1 有一個 id 列和一個 number 列。 id號出現多次,可以是5次,也可以是60次,或者別的什么。
id number
2 NA
4 NA
9 ...
1
2
2
3
5
5
5
12
我有 dataset2,其中每個 id 只出現一次,然后是數字的值
id number
1 12
2 25
3 33
4 121
5 35
9 1500
dataset1 中有 id,但在 dataset2 中不存在。
我想將 dataset2 的數量分配給 dataset1 中的空數字列以獲得正確的 ID。 我嘗試了一些東西,但它總是給我一個錯誤,即我想要替換的觀察數量與觀察的輸入不匹配。 我知道是這種情況,因為我的數據集 2 的觀測值少於數據集 1。 我嘗試過的一些事情:
dataset1[na.omit(match(dataset1$id, dataset2$id)), ]$number <- data_new[dataset2$id %in% dataset1$id, ]$number
dataset1$number <- ifelse(dataset2$id %in% dataset1$id, dataset2$number, NA)
我將不勝感激任何幫助! 謝謝!!
假設您的 dataset1 中的“數字”列僅包含 NA,最簡單的解決方案是將您的 dataset1 整理為 ids 和 left_join dataset2 的向量:
library(dplyr)
tidy <- dataset1 %>%
group_by(id) %>%
summarise()
merge <- left_join(tidy, dataset2, by = "id")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.