这段代码:
foo <- data.frame(x=c(1,2,3))
foo <- foo %>% group_by(x)
foo <- foo %>% ungroup() %>% mutate(x=foo[,'x'])
给出此错误:
Error: not compatible with STRSXP
虽然这行有效:
foo <- foo %>% ungroup() %>% mutate(x=x)
这是错误还是功能?
最佳答案
我不确定您在这里的意思。您创建了一个包含一列和3个观察值的data.frame,然后根据x进行分组,立即取消分组,最后使用mutate自身创建(替换)列x。我可能会缺少一些东西。如果运行以下命令,错误将消失:
foo <- data.frame(x = c(1, 2, 3))
foo <- foo %>%
group_by(x) %>%
ungroup() %>%
mutate(x = foo[,'x'])
您应该在R中使用
<-
-没有冒犯的意思,也许您熟悉Python。在StackOverflow上还有其他问题记录了类似的问题。但是,在这种情况下,我不确定我们是否可以谈论“错误”。 dplyr
最好的部分是您可以传递对象而不必担心引号。为什么首先要使用该语法?去做:foo <- data.frame(x = c(1, 2, 3))
foo <- foo %>%
group_by(x) %>%
ungroup() %>%
mutate(x = x)
更简单,更直观。
关于r - 为什么我不能在df_tbl中更改此字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42865782/