我有一个字符变量,其中包含描述项目特征的代码。看起来像这样:
[1] "151" "510|130|130" "311|110" "140" "160|160" "160|160|130"
[7] "160" "160" "160" "151" "151" "160|110"
我需要提取项目的主要特征,即占主导地位的代码。如果没有主导代码,我选择第一个。结果是:
[1] "151" "130" "311" "140" "160" "160"
[7] "160" "160" "160" "151" "151" "160"
关于如何实现这一目标有什么建议吗?
最佳答案
您可以使用strsplit
来分割向量,并使用collapse::fmode
来获取“主导”的值(所谓的统计模式),以及如果存在平局,则第一个值(这是 fmode
的默认行为):
x <- c("151", "510|130|130", "311|110")
as.numeric(sapply(strsplit(x, "\\|"), collapse::fmode))
#[1] 151 130 311
创建 mode
函数的其他方法(未直接在基础 R 中实现)可以在 here 中找到。 .
关于r - 从管道分隔数字列表中获取模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77451751/