谁能帮我完成这个简单的任务。我正在r入门,我不明白为什么这部分代码没有在for循环内运行。我尝试过在循环外使用函数strsplit()
,但效果很好,但是在数据帧中的for循环中,我没有以我想要的方式成功运行代码。
这里是代码:
mpg <- ggplot2::mpg
df_sort <- data.frame(uni_model = sort(unique(mpg$model)))
df_sort$model1 <- ''
for (x in seq_along(df_sort$model)){
df_sort[x, 'model1'] <- strsplit(df_sort[x, 'model'], ' ')
}
[我建议您学习更多关于tidyverse的知识,因为它提供了学习和应用R工具的很好的框架,而不必处理基础R的特质。下面的代码使用dplyr
和stringr
来完成字符串的工作操作:
library(dplyr)
library(stringr)
mutate(df_sort, model1 = word(uni_model, 1))
uni_model model1
1 4runner 4wd 4runner
2 a4 a4
3 a4 quattro a4
4 a6 quattro a6
5 altima altima
etc...
请注意,您不需要使用for循环,因为R默认是矢量化的。也就是说,默认情况下,应用于矢量的任何函数都将应用于该矢量的每个元素。