无法更改数据框中的值

hag*_*gis 0 r

我创建了一个数据框:

df <- mydata %>%
  mutate(length.class=cut(mydata$count,breaks = c(1, 10, 100, 1000, 10000),include.lowest=TRUE)) %>%
  group_by(length.class) %>%
  summarise(count = n())
Run Code Online (Sandbox Code Playgroud)

这样得到的df$length.class值就像"(100,1e + 03)",而我更喜欢"(100,1000)".但是,手动更改它不起作用:

df$length.class[df$length.class == "(100,1e+03]"] <- "(100,1000]"

Warnmeldung:
In `[<-.factor`(`*tmp*`, df$length.class == "(100,1e+03]", value = c(1L,  :
  invalid factor level, NA generated
Run Code Online (Sandbox Code Playgroud)

为什么更改字符串是不可能的,什么尝试R告诉我这条消息?

奖金问题:如何获取原始值或解决更改的行(4)?执行更改命令后,现在有一个"NA"而不是"(100,1e + 03]".

aos*_*ith 5

dig.lab在争论cut应照顾这.

从文档:

未给出标签时使用的整数.它确定格式化中断号码时使用的位数.

在您的情况下,您希望显示5位数,以便您的代码

mydata %>%
    mutate(length.class = cut(count, breaks = c(1, 10, 100, 1000, 10000), 
                            include.lowest = TRUE, dig.lab = 5))
Run Code Online (Sandbox Code Playgroud)

结果因素的级别如下:

[1] "[1,10]"       "(10,100]"     "(100,1000]"   "(1000,10000]"
Run Code Online (Sandbox Code Playgroud)