【发布时间】:2016-02-28 18:46:55
【问题描述】:
我是 R 新手,所以请多多包涵。
我有两个数据框:
df1 <- data.frame(name = c("name 1", "name 2", "name 3", "name 4"),
columnname = c("hello", "", "hello", ""))
df2 <- data.frame(name = c("name 1", "name 2", "name 3"),
columnname = c(1, 2, 3))
看起来像:
df1
#name columnname
#name 1 hello
#name 2
#name 3 hello
#name 4
df2
#name columnname
#name 1 1
#name 2 2
#name 3 3
我的目标是将 df1 中的值“hello”替换为 df2 中的相应值(否则为 NA),并创建一个新的数据框 df3。到目前为止,我有以下代码:
fun <- function(cat_df, ret_df, col_name) {
ret_df[, col_name] <- ifelse(cat_df[, col_name] == "hello", ret_df[, col_name],"NA")
return(ret_df)
}
df3 <- fun(df1, df2, col_name = "columnname")
df3
#name columnname
#name 1 1
#name 2 NA
#name 3 3
#name 4 NA
但是,我有 350 列和 3000 行。所以我的问题是,如何扩展代码以容纳 350 列和 3000 行的数据框?其他类型的代码非常欢迎!
【问题讨论】:
标签: r dataframe conditional-statements