[英]Filter r dataframe for row and column names by value
后續問題:我正在以閃亮的方式構建動態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)
我可以創建一個所有行和列名稱的列表,其中至少一個元素> 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
行中的值為1的列名 不是最漂亮的解決方案,但可以。
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]
}
嘗試
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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.