r语言 - 修改值和替换



你好,我正在尝试改变值(例如将千克更改为吨)并在原始数据集中替换它们,但它似乎没有留在原始数据集中。

这是一个样本数据集供参考。

<表类> 国家 类型数量tbody><<tr>公斤23132B公斤34235C吨700

您也可以使用case_when(),这是dplyr的相当于SQL的CASE WHEN。基本上它允许你对多个if_else()语句进行矢量化。下面,第一个条件是if语句,然后TRUE ~是else语句

df <- data.frame(Country = c('A', 'B', 'C'),
Type = c("Kilograms", "Kilograms", "Tonnes"),
Quantity = c(23132, 34235, 700))
df <- df %>% 
mutate(Quantity = case_when(Type == 'Kilograms' ~ Quantity/1000,
TRUE ~ Quantity),
Type = case_when(Type == 'Kilograms' ~ 'Tonnes',
TRUE ~ 'Tonnes')
)

使用ifelse函数根据其他条件修改值。这个函数在tidyverse环境下也能很好地工作。

不要忘记将结果重新赋值给原始变量,因为管道操作符不会改变输入数据

library(dplyr)
df = df %>% mutate(Quantity = ifelse(Type=="Kilograms",Quantity/1000,Quantity),
Type = ifelse(Type=='Kilograms','Tonnes',Type))

最新更新