使用指定的数据集替换data.frame

时间:2017-12-07 22:49:39

标签: r dataframe replace

我想使用指定的数据集替换data.frame

> test_data
     support count
1 0.01235235   663
2 0.01373104   737
3 0.01393598   748
4 0.01265045   679
5 0.01548236   831
6 0.01565004   840
> replace_support
           2            3            4            6 
-0.008884196 -0.007991622 -0.011675116 -0.013086012 

replace_support 的名称与 test_data 的行名对应 我的期望是替换列支持

     support count
1 0.01235235   663
2 -0.008884196   737
3 -0.007991622   748
4 -0.011675116   679
5 0.01548236   831
6 -0.013086012   840

野兔是示例数据

test_data <- structure(list(support = c(0.0123523493684093, 0.0137310429630734, 
0.0139359839028207, 0.0126504452807691, 0.0154823564481872, 0.0156500353988896
), count = c(663, 737, 748, 679, 831, 840)), .Names = c("support", 
"count"), row.names = c(NA, 6L), class = "data.frame")

replace_support <- structure(c(-0.00888419577036815, -0.00799162193023339, -0.0116751160488589, 
-0.0130860121134779), .Names = c("2", "3", "4", "6"))

2 个答案:

答案 0 :(得分:0)

怎么样:

test_data$support[as.integer(names(replace_support))] <- replace_support

test_data
#>        support count
#> 1  0.012352349   663
#> 2 -0.008884196   737
#> 3 -0.007991622   748
#> 4 -0.011675116   679
#> 5  0.015482356   831
#> 6 -0.013086012   840

答案 1 :(得分:0)

您可以使用替换功能:

indexes <- as.integer(names(replace_support))
test_data$support <- replace(test_data$support,indexes,replace_support)
test_data
   support count
1  0.012352349   663
2 -0.008884196   737
3 -0.007991622   748
4 -0.011675116   679
5  0.015482356   831
6 -0.013086012   840

如果replace_support的名称与相应的索引不匹配,您可以手动提供它们。