如何用R中的其他数据框更新数据框 [英] How to update data frame with other data frame in R

查看:13
本文介绍了如何用R中的其他数据框更新数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个数据帧。
第一个是原始数据帧。
第二个是更改的数据帧(此数据列可以由用户更改)。

我想用df2(更改的数据)更新df1数据框
请参考预期结果例如1、2

我真的很感谢大家的帮助。

# data frame 1 (orignal datas)
age <- c(24, 28, 31, 25, 27, 22, 29)

gender <- c("male", "female", "female", "male", "female", "male", "female")
score <- c(90, 80, 85, 75, 95, 80, 70)

df1 <- data.frame(age, gender, score, stringsAsFactors = FALSE)
df1

> df1
  age    gender score
1  24   male    90
2  28 female    80
3  31 female    85
4  25   male    75
5  27 female    95
6  22   male    80
7  29 female    70

# data frame2 (other data frame) - column could be changed by user
id <- c("1", "2")
ch_age <- c(50, 40)
ch_score <- c(80, 80)

df2 <- data.frame(id, ch_age, ch_score, stringsAsFactors = FALSE)
df2

> df2
  ch_id ch_age ch_score
1     1     50       80


exepcted result

e.g1 
  age    gender score
1  50   male    80 --> applied df2 dataframe this row
2  28 female    80
3  31 female    85
4  25   male    75
5  27 female    95
6  22   male    80
7  29 female    70

e.g2
  age    gender score
1  24   male    90
2  28 female    80
3  50 female    80 --> applied df2 dataframe this row
4  25   male    75
5  27 female    95
6  22   male    80
7  29 female    70

推荐答案

colnames(df2) <- c("sex", "age", "score") 
df2 <- df2[c("age","sex","score")]
for (i in 1:nrow(df2)){
  if(df2[i,2] ==1 ){
    df2[i,2] <- "male"
  }else{
    df2[i,2] <- "female"
  }
}
rbind(df1, df2)

之后,您可以对行执行操作。

这篇关于如何用R中的其他数据框更新数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆