我正在使用R dplyr::mutate
有条件地更改数据帧变量值。 df_forecast来自使用stringsAsFactors=F
输入的CSV文件。
变量属性Acres
是一个字符串,稍后将转换为一个包含'10 -Jan'(1/10/2019)的因子。我正在尝试将Acres的值“ 10-Jan”更改为“ 1 to 10”,但该更改未对数据帧进行任何更改。
下面的“ YearBuilt”的第二个代码示例上也存在相同的故障更新问题:尝试将“ 15”清除/更改为“ 2015”。
我正在使用R Studio(3.5)。
dplyr的努力探索:
我尝试过平均分配
'mutate(df_forecast $ Acres = case_when ...'),导致此错误。msg:'错误:意外'='在: “ df_forecast%>% mutate(df_forecast $ Acres =“'
我尝试了'=='进行'mutate(df_forecast $ Acres == case_when ...'的操作,结果是'data.frame':22745 obs。of 19 variables
df_forecast <- data.frame(forecast)
df_forecast %>%
mutate(df_forecast$Acres == case_when(df_forecast$Acres == "10-Jan" ~ "1 to 10")) %>%
##
str(df_forecast)
df_forecast %>%
mutate(df_forecast$YearBuilt == case_when(df_forecast$YearBuilt == "15" ~ "2015")) %>%
##
str(df_forecast)
答案 0 :(得分:1)
您不必只写files = files.map do |f|
f = nil unless File.exist?(f)
f
end.compact.sort_by { |f| File.send(func, f) }
即可df_forecast$Acres
并指定在没有任何条件适用时必须执行的操作。
Acres
我刚刚在data <- data.frame(Acres = c("10-Jan", "10-Jan", "anytime", "10-Jan", "10-Jan", "anytime"),
stringsAsFactors = FALSE)
> data
Acres
1 10-Jan
2 10-Jan
3 anytime
4 10-Jan
5 10-Jan
6 anytim
data %>%
mutate(Acres = case_when(Acres == "10-Jan" ~ "1 to 10",
TRUE ~ Acres)) -> data
> data
Acres
1 1 to 10
2 1 to 10
3 anytime
4 1 to 10
5 1 to 10
6 anytime
时将Acres
的内容分配回了Acres
,但是可以是任何东西。
更新:要使更改永久生效,还必须将结果分配给data.frame。