繁体   English   中英

使用相同的名称合并列

[英]Merge columns using common same name

我有一个这样的数据框:

DF <- data.frame(text = c(0, 0, 0, 1), text.1 = c(0, 1, 0, 0), "text sth"=c(1, 0, 0, 0))

我想合并具有在每个列的名称之间通用的单词的列。 在示例中,这是“文本”。 行的长度相等,并且数据帧不包含NA。

预期输出示例:

DF <- data.frame(text = c(1, 1, 0, 1))

有什么办法吗?

您想检查每一行是否包含零以外的内容,对吗? 从您提出问题的方式来看,我假设每一行代表一个单词,每一列代表一个文档,就像术语文档矩阵 (TDM)中一样。

您可以通过对行apply()来完成此操作:

apply(DF, 1, function(x) !all(x == 0))*1
# [1] 1 1 0 1

当然,在一个完整的TDM,你总会有至少一个非零每行条目。

剩下的问题归结为根据某些规则对TDM进行细分:

rule1 <- grepl("text", names(DF))
subdf <- DF[, rule1]
apply(subdf, 1 function(x) !all(x==0))*1
# [1] 1 1 0 1

请注意,我分别计算了rule1以便您可以轻松地使该规则适应实际数据和/或更复杂的条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM