我在R中使用round()时出现问题。我的目标是减去两组日期并将结果存储在两个新列中。
我最初编写的代码给了我想要的内容但是新专栏并没有四舍五入。我想绕到十分位置,所以我加入了圆形()。这是结果代码
df_edit <- df %>%
mutate(
enroll1 = Enroll - dob,
discha1 = Discharge - dob,
enroll_age = enroll1 / 365,
discha_age = discha1 / 365) %>%
round(enroll_age, digits = 2) %>%
round(discha_age, digits = 2) %>%
select(
Name,
RT,
Enroll,
Discharge,
dob,
enroll_age,
discha_age,
everything()
)
此代码提供错误
Error in function_list[[i]](value) : object 'enroll_age' not found
我发现的圆形()写作往往很简单,只是对帮助信息的重复。
因为我正在管道,所以我不应该在舍入时说明我正在使用的数据框,对吗?我试过了
round(df$enroll_age, digits = 2) %>%
round(df$discha_age, digits = 2) %>%
得到了这个错误
`function_list [i]中的错误: 传递给&#39; round&#39;的3个参数需要1或2个参数 另外:警告信息: 未知或未初始化的列:&#39; enroll_age&#39;
谢谢!
答案 0 :(得分:1)
在没有看到您的数据的情况下,当然很难说哪个解决方案最有效,但基本上您需要第二个mutate()
进行舍入,或者您可以在第一个mutate
中进行舍入
df_edit <- df %>%
mutate(
enroll1 = Enroll - dob,
discha1 = Discharge - dob,
enroll_age = round(enroll1 /365, digits = 2),
discha_age = round(discha_age /365, digits = 2)