跟进问题: 我正在构建一个闪亮的动态UI,并希望可能的选择取决于以前的选择。 我过滤了数据集
df <- read.table(text = " a b c d
X 1 1 1 0
Y 1 0 0 0
Z 0 1 0 0 ", header = T)
我可以使用leat one element&gt; 0
创建所有行和列名称的列表col <- names(which(colSums(df == 1) > 0))
row <- names(which(rowSums(df == 1) > 0))
col_row <- c(col,row)
现在用户选择col_row的元素。我想要做的下一件事是读取特定选择的行/列名称。
2例
a
。现在我想从df $ a读取所有行名称
df $ a中的值1 X
。我希望所有列名称的行X
答案 0 :(得分:2)
不是最漂亮的解决方案,但有效。
df <- read.table(text = " a b c d
X 1 1 1 0
Y 1 0 0 0
Z 0 1 0 0 ", header = T)
# a b c d
# X 1 1 1 0
# Y 1 0 0 0
# Z 0 1 0 0
col <- names(which(colSums(df == 1) > 0))
row <- names(which(rowSums(df == 1) > 0))
choice <- "c"
if (choice %in% col) {
rownames(df[df[choice] == 1, ])
} else if (choice %in% row) {
colnames(df)[df[choice, ] == 1]
}
答案 1 :(得分:1)
尝试
row.names(df)[df[,col_row=="a"]==1]
#[1] "X" "Y"
d1 <- df[intersect(col_row, "X"),]==1
colnames(d1)[d1]
#[1] "a" "b" "c"