R-将具有功能的列内容更改为新内容

足够

好吧,我的问题是,我有一个数据框,其中的列具有这样的物种名称:

  1. 属1种1
  2. 属1种2
  3. 属2种3

我只是想剪掉这样的属名:

  1. G.种1
  2. G.种2
  3. G.种3

我的问题不是字符串处理。我只是想不通如何简单地使用如下所示的函数:

truncateGenusName <- function(x){
  genus <- str_sub(x, 1, 1) 
  posOfSpace <- str_locate(x, " ")[1] 
  epitheton <- str_sub(x, posOfSpace, str_length(x)) 
  paste0(genus, '. ', epitheton)
}

我试图像这样调用函数:
mutate(data, species = replace (species, TRUE, truncateGenusName(species)))

该调用的问题在于,不是单个字符串传递给函数,而是传递给列表。

我想我的方法太复杂了。也许有人有捷径吗?

美国弗莱彻

下面是一个使用的解决方案dplyrtidyr以及stringr

separate来自tidyr软件包的用来将names列变成两个新列genusspecies

str_truncstringr软件包中截断genus列中的字符串请注意,默认设置是应用三个省略号,指示字符串已被截断。使用ellipsis = "."默认的替代仅显示1个椭圆。

paste具有default sep = " ",所以paste0在我看来,它是更好的选择

library(tibble) # Used to create a reproducible example. 
library(dplyr)
library(tidyr)
library(stringr)

# create a reproducible example dataset using the tibble package. 

df <- tibble(
  names = c("Genus1 species1",
            "Genus1 species2",
            "Genus1 species3")
)


# code to format the names column. 

df %>% 
  separate(names, c("genus", "species"), sep = " ") %>% 
  mutate(genus = str_trunc(genus, 2, ellipsis = ".")) %>% 
  mutate(
    genus_species = paste(genus, species)
  ) %>% 
  rename(names = genus_species) %>%
  select(names)

# output table

#> # A tibble: 3 x 1
#>   names      
#>   <chr>      
#> 1 G. species1
#> 2 G. species2
#> 3 G. species3

reprex软件包(v0.3.0)创建于2020-11-19

原始表格:

#> # A tibble: 3 x 1
#>   names          
#>   <chr>          
#> 1 Genus1 species1
#> 2 Genus1 species2
#> 3 Genus1 species3

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R-将具有功能的列内容更改为新内容

来自分类Dev

R在Python中具有功能

来自分类Dev

R中具有功能的表

来自分类Dev

具有功能参数的意外R行为

来自分类Dev

将R中的所有列从系数更改为数值

来自分类Dev

将R中的所有列从系数更改为数值

来自分类Dev

如何动态更改R中现有功能的行

来自分类Dev

新的Xcode 8将所有内容更改为FilePrivate

来自分类Dev

R使用功能编程将格式更改为数据帧的列

来自分类Dev

如何根据R中另一列的条件将列内容展开为新列

来自分类Dev

将矩阵更改为仅具有唯一数R的矩阵

来自分类Dev

将坐标更改为R中具有多个图层的一系列栅格

来自分类Dev

将具有因数的数据框更改为大矩阵R

来自分类Dev

将矩阵更改为仅具有唯一数R的矩阵

来自分类Dev

R:将所有字符串标称列更改为整数

来自分类Dev

R中是否有功能可以一次更改几个相似的因子水平?

来自分类Dev

使用 R 根据列内容是否为“私有”创建一个新表

来自分类Dev

将单元格内容分成R中的新行

来自分类Dev

将工作空间中的所有功能导出到R源文件

来自分类Dev

将工作空间中的所有功能导出到R源文件

来自分类Dev

如果第三列为真,如何将列内容添加到新列中 R

来自分类Dev

R dplyr:将列更改为特定行范围

来自分类Dev

R`as.numeric`将所有值更改为NA

来自分类Dev

将列表更改为没有循环 R 的数据框

来自分类Dev

使用R-在不重复内容的情况下将多个列压缩为一个新列

来自分类Dev

将列表定界符更改为新内容

来自分类Dev

R:对列的内容进行排序

来自分类Dev

R-从列中删除逗号后的所有内容

来自分类Dev

修改R中雷达图的现有功能

Related 相关文章

热门标签

归档