以下数据集
a b c d e
X 1 1 1 1 0
Z 1 0 0 1 0
Y 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
我想创建列表.当列中至少有一个值等于1时,一个具有所有列名称.一个列表包含所有行名称(X,Z,Y),每当至少一个行元素的值为1时.
我试过了:
df[Reduce(`|`, as.data.frame(lapply(df)), function(x) x %in% 1),]
Run Code Online (Sandbox Code Playgroud)
没有结果.
最后我想要
x=(a,b,c,d) and z=(X,Z)
Run Code Online (Sandbox Code Playgroud)
运用
df <- read.table(text = " a b c d e
X 1 1 1 1 0
Z 1 0 0 1 0
Y 0 0 0 0 0", header = T)
> df
# a b c d e
# X 1 1 1 1 0
# Z 1 0 0 1 0
# Y 0 0 0 0 0
names(which(colSums(df == 1) > 0))
# [1] "a" "b" "c" "d"
names(which(rowSums(df == 1) > 0))
# [1] "X" "Z"
Run Code Online (Sandbox Code Playgroud)