【发布时间】:2018-05-04 13:37:09
【问题描述】:
我的问题是基于question asked here 的Multiple expression in ifelse() statement。我需要在 case_when() 函数中有一个 expression 而不是算术运算。下面是我的数据框
my_df <- data.frame(H= c("ABC", "DEF", "GHI"))
所以这是我的代码,我试图在case_when() 中添加一个表达式,但它不起作用。
library(dplyr)
output_df$D <- case_when(
my_df$H == "ABC" ~ substr(my_df$H,1,3),
my_df$H == "DEF" ~ substr(my_df$H,1,2),
TRUE ~ substr(my_df$H,1,1)
)
我预期的输出数据框是:
output_df
D
ABC
DE
G
【问题讨论】:
-
代码对我来说运行良好。你有 data.frame
output_df吗?假设,如果我将输出分配给my_df$D <-它工作正常 -
@akrun 不,我收到错误
Error: must be type character, not double -
您有一个因子列,但我使用的版本对我来说效果很好
-
我正在使用
dplyr_0.7.4