r - R:按第一个字符的出现次数计数
问题描述
我有这种类型的数据框
#Data structure
(list(ID = 1:5, Name = c("_PEN", "_RULER","-PAPER", "-GUM", "_BOOK"), class = "data.frame"))
DF ID Name
1 _PEN
2 _RULER
3 -PAPER
4 -GUM
5 _BOOK
我想得到这个:
DF TYPE n
"_" 3
"-" 2
dplyr 有一些易于使用的解决方案吗?
解决方案
我们可以sub
用来提取Name
使用正则表达式的第一个字符并table
用来计算它的出现次数。
stack(table(sub('(.).*', '\\1', df$Name)))
相同的代码dplyr
是:
library(dplyr)
df %>% count(Name = sub('(.).*', '\\1', Name))
# Name n
#1 _ 3
#2 - 2
数据
df <- structure(list(ID = 1:5, Name = c("_PEN", "_RULER", "-PAPER",
"-GUM", "_BOOK")), class = "data.frame", row.names = c(NA, -5L))
推荐阅读
- python - 如何在mac上的vscode上安装包?
- excel - 如何从其名称或其中的文本中找到列字母?
- android - 设置 chromium depot_tools 时无法运行 fetch android
- ruby-on-rails - rails delay_jobs + 删除记录
- php - 删除在 $_COOKIE 中编码的 JSON 元素
- geoserver - vec:Geoserver 的 SLD 中的 BarnesSurface
- php - 如何在具有最大长度和最大数组总和的数组中插入随机值
- bash - bash 从表中提取第一行
- java - 将带有 ksoap2 的自定义标头发送到 asp.net
- powershell - 对象引用未设置为 powershell 中的对象实例