我有一个数据框架,像这样:
my.tree <- data.frame(Tree=c("Acer campestre", "Abies alba", "Pyrus communis", "Robinia pseudoacacia", "Tilia cordata"), 
                      Freq=c(23,65,47,69,65))我想立刻用point替换单词之间的所有point。我想要创建新的data frame (或者修改这个data frame),在这里树名的单词之间会有点,例如Acer.campestre、Abies.alba、Pyrus.communis等等。
是否可以立即替换,或者如何更容易地进行这些更改?
发布于 2015-03-05 14:48:45
你可以:
my.tree$Tree <- gsub(pattern = " ", replacement = ".", x = my.tree$Tree)
> my.tree
#                  Tree Freq
#1       Acer.campestre   23
#2           Abies.alba   65
#3       Pyrus.communis   47
#4 Robinia.pseudoacacia   69
#5        Tilia.cordata   65发布于 2015-03-05 14:49:57
你可以:
> library(dplyr); mutate(my.tree, Tree = gsub(" ", ".", Tree))
#                  Tree Freq
#1       Acer.campestre   23
#2           Abies.alba   65
#3       Pyrus.communis   47
#4 Robinia.pseudoacacia   69
#5        Tilia.cordata   65发布于 2015-03-05 14:57:13
使用gsub可能更安全(也更传统),但也可以使用make.names。
make.names(my.tree$Tree)
# [1] "Acer.campestre"       "Abies.alba"           "Pyrus.communis"      
# [4] "Robinia.pseudoacacia" "Tilia.cordata" 甚至是chartr
chartr(" ", ".", my.tree$Tree)
# [1] "Acer.campestre"       "Abies.alba"           "Pyrus.communis"      
# [4] "Robinia.pseudoacacia" "Tilia.cordata"   https://stackoverflow.com/questions/28880618
复制相似问题