微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

替换 R 数据帧中的指定值

如何解决替换 R 数据帧中的指定值

我有以下数据框:

structure(list(Country = c("France","France","France"),Year = c("2005","2006","2007","2008","2009","2010"),`Exports (US$)` = c(5.81084e+11,6.31842e+11,7.2246e+11,8.00627e+11,6.48448e+11,6.89363e+11),`Exports (% GDP)` = c(26.36883754,27.17584676,27.12839279,27.38622642,24.07163011,26.04322983
),`Imports (US$)` = c(5.90215e+11,6.51268e+11,7.56838e+11,8.51828e+11,6.86824e+11,7.39179e+11),`Imports (% GDP)` = c(26.78317677,28.01139825,28.41931057,29.13761054,25.49621793,27.9252092
),`Balance (US$)` = c(-9130705136,-19426671685,-34378592937,-51201113227,-38375937760,-49815894040),`Trade (% GDP)` = c(53.1520143,55.18724501,55.54770336,56.52383696,49.56784804,53.96843903
),`Tourism Arrivals` = c(74988000,77916000,80853000,79218000,76764000,76647000),`Tourism Revenue (US$)` = c(5.2139e+10,5.4587e+10,6.3902e+10,6.8001e+10,5.8858e+10,5.6187e+10),`Tourism Contibution (US$)` = c(3.8643e+10,3.9299e+10,4.6051e+10,5.0361e+10,4.505e+10,4.6704e+10),`Mean Tariff (%)` = c(2.25,2.39,2.35,2.25,2.15,1.94),`Agricultural Exports (%)` = c(0.936616468,0.915495223,0.902626815,0.823376135,0.840151761,0.933187394
    ),`Foodstuffs Exports (%)` = c(10.69433359,10.44921899,10.9074663,11.55678858,12.39583246,11.97388386),`Fuel Exports (%)` = c(4.097126345,4.294184258,3.824605043,5.054913327,3.571240809,3.658869025
    ),`Manufactured Exports (%)` = c(80.1542151,79.39097148,79.11453511,77.56776592,78.65649747,78.43552158),`Ores and Metals Exports (%)` = c(2.127772482,2.836640524,2.89583644,2.62004432,1.961798176,2.460245868
    )),row.names = c(NA,6L),class = "data.frame")

在我的“平均关税 (%)”列中,有四个空值。我想根据不同的标准替换来自不同国家的空值。

基本上,我想用我单独计算的特定值替换土耳其缺失的关税值,并对缺失的瑞士和俄罗斯值执行相同的操作(用国家特定的解决方案替换缺失值)。

有没有办法指定我想用输入值替换的值的坐标(例如,土耳其语值位于第 12 列、第 88 行和第 90 行)?

解决方法

如果你想专门替换某些“坐标”,你可以做某事。喜欢

my_data[c(88,90),12] <- NEWVALUE

否则,如果您想抽象您的问题并找到更通用的解决方案,您可以使用 ifelse 命令。例如

my_data$COLUMN <- ifelse(my_data$COUNTRY == "Turkey",NEWVALUE,my_data$COUNTRY).

如果你有几个条件,我推荐case_when

library(tidyverse)
my_data <- my_data %>%
  mutate(COLUMN = case_when(COUNTRY == "TURKEY" ~ NEWVALUE1,COUNTRY == "France" ~ NEWVALUE2))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。