我有一个数据帧,如下所示:
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
的非空元素是否仅包含单个唯一元素。apply
与MARGIN = 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)