如何使用R语言来确定一行是否是相同的字符



我有一个数据帧,如下所示:

V1 V2 V3 V4 V5
1 a  a  b  a  a
2 a  a  a 
3 b  b  b  b
4 a  c  d

我想把具有相同字符的行保留在一行中(在我的例子中,是第2行和第3行(,有什么功能可以帮助我实现这一要求吗?

以下是使用apply的基本R选项

df[apply(df, 1, function(x) length(unique(x[x != ''])) == 1), ]
#V1 V2 V3 V4 V5
#2  a  a  a      
#3  b  b  b  b   

说明:length(unique(x[x != '')) == 1检查向量x的非空元素是否仅包含单个唯一元素。applyMARGIN = 1意味着我们循环通过data.frame的行。


样本数据

df <- read.table(text = "  V1 V2 V3 V4 V5
1 a  a  b  a  a
2 a  a  a  '' ''
3 b  b  b  b ''
4 a  c  d '' ''", header = T)

最新更新