【问题标题】:Add column to R dataframe that is length of string in another column将列添加到 R 数据框中,该列是另一列中的字符串长度
【发布时间】:2016-12-01 16:56:33
【问题描述】:

这应该很简单,但我想不通,搜索也没有帮助。我想在数据框中添加一列,它只是另一列中字符串的长度。

假设我有一个名称如下的数据框:

   Name    Last
1  John     Doe
2 Edgar     Poe
3  Walt Whitman
4  Jane  Austen

我想附加一个字符串长度为姓氏的新列,所以它看起来像:

   Name    Last  Length
1  John     Doe  3
2 Edgar     Poe  3
3  Walt Whitman  7
4  Jane  Austen  6

谢谢

【问题讨论】:

  • 使用nchardf$Length = nchar(df$Last).
  • 这似乎不起作用。我收到错误“'nchar()' 需要字符向量”。看起来 nchar() 对 char 向量进行操作,但不是对 char 向量列进行操作。我需要类似“在列中的每个单元格上应用函数 nchar,并将返回值添加到新列”
  • 您可能只是将数据作为因子导入。使用df$Length <- nchar(as.character(df$Last))
  • 您可能将列作为因素。作为@MrFlick。
  • 甜蜜!这就是诀窍。谢谢

标签: r dataframe


【解决方案1】:

我们可以从stringr使用str_count

library(stringr)
df1$Length <- str_count(df1$Last)
df1$Length
[1] 3 3 7 6

【讨论】:

    【解决方案2】:

    如果要根据列的长度进行过滤,请执行以下操作:

    library(dplyr) 
    
    df<- df %>% 
      filter(nchar(Last) <= 3) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多