在R数据框中添加一列,该列是另一列字符串的长度

6

这个应该很简单,但我无法弄清楚,而且搜索也没有帮助。我想向数据框中添加一个列,该列只是另一列字符串的长度。

假设我有一个姓名数据框,如下所示:

   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

谢谢


6
请使用 nchar 函数。df$Length = nchar(df$Last) 表示将 df 数据框中 Last 列中每个元素的字符长度赋值给 Length 列。 - Psidom
似乎不起作用。我收到了错误信息“'nchar()'需要一个字符向量”。看起来nchar()操作的是一个char向量,而不是char向量的列。我需要类似于“在列中的每个单元格上应用函数nchar,并将返回值添加到新列”的东西。 - Turbo
1
你可能只是将数据导入为因子。使用 df$Length <- nchar(as.character(df$Last)) - MrFlick
你可能把该列作为因子(factor)了,就像@MrFlick所说的那样。 - Psidom
甜!那就是诀窍。谢谢。 - Turbo
2个回答

4
我们可以使用stringr中的str_count函数。
library(stringr)
df1$Length <- str_count(df1$Last)
df1$Length
[1] 3 3 7 6

0
如果您想按列过滤长度,则请执行以下操作:
library(dplyr) 

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接