r - 如何匹配R中的字符变化
问题描述
我在 R 中有以下提到的数据框:
ID source_field_1 field_1 source_field_3 field_3
ER-1 AC45U CD34I 1992-01-23 23/01/1992
ER-2 AB15X 1971-01-23 23/1/1971
ER-3 DB22U AC22Z 1962-11-13 3/11/1962
ER-4 CF12R BA23D 1992-01-23 23/01/1992
我需要按从列source_field_1
到field_1
、从 A 到 Z 以及从 0 到 9 的字符变化计数来分组。
所需输出:
source_field_1 A B C D E . . . Z
A 1
B 1
C 1 1
D 1
E
F 1
.
. 1
. 1
Z
数字字符以及 和 都需要相同的field_1
结构field_3
。
解决方案
df1 <- na.omit(df)
create <- function(from,to,nm)
{
s <- sprintf("[^%s]",paste0(nm,collapse = ""))
from <- unlist(strsplit(gsub(s,"",from),""))
to <- unlist(strsplit(gsub(s,"",to),""))
table(from,to)
}
create(df1$source_field_1,df1$field_1,0:9)
to
from 2 3 4
1 1 0 0
2 2 1 0
4 0 1 0
5 0 0 1
create(df1$source_field_1,df1$field_1,LETTERS)
to
from A B C D I Z
A 0 0 1 0 0 0
B 0 0 1 0 0 0
C 0 1 0 1 0 0
D 1 0 0 0 0 0
F 1 0 0 0 0 0
R 0 0 0 1 0 0
U 0 0 0 0 1 1
推荐阅读
- reactjs - 反应中带有搜索功能的未处理的运行时错误
- oracle - 如何强制 Oracle 在带有“order by”子句的查询的内联视图中使用索引
- python - 无法从 Pandas read_csv 正确读取数据
- python - 发出 GET 请求时出现奇怪的 JSONDecodeError
- html - 托管 R Shiny 应用程序
- reactjs - 反应路由器切换基本名称
- java - 使用 GraalVM native-image-maven-plugin 构建本机映像时出错
- rust - 支持可能生命周期的高阶函数
- python - 如何将随机生成的数字存储在文本文件中?(Python)
- google-sheets - 希望根据评分/分数创建过滤器,以用于播客的存档