db # A tibble: 3 x 4 x y z w 1 TRUE FALSE TRUE FALSE 2 TRUE FALS-6ren">
gpt4 book ai didi

r - 在 R 中,指示每行中的哪些列的值是 "true"

转载 作者:行者123 更新时间:2023-12-01 11:16:59 25 4
gpt4 key购买 nike

我有以下数据框:

> db
# A tibble: 3 x 4
x y z w
<lgl> <lgl> <lgl> <lgl>
1 TRUE FALSE TRUE FALSE
2 TRUE FALSE TRUE FALSE
3 TRUE FALSE TRUE FALSE

我想创建一个新列,它为每一行存储等于 TRUE 的列,例如第 1 行将是 c(x,z)(例如字符格式)。

dplyr 解决方案将不胜感激!

最佳答案

使用 apply

 df <-
data.frame(
x = c(T, T, T),
y = c(F, F, F),
z = c(T, F, F),
w = c(T, F, T)
)

df$true_cols <- apply(df, 1, function(data)
names(which(data == T)))

您查看每一行,并找到其值设置为“TRUE”的列。这是与 which 一起收集的函数,它返回一个类似于索引的数字。与 name函数,可以返回列名而不是列位置。

希望这可以帮助。

关于r - 在 R 中,指示每行中的哪些列的值是 "true",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49537543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com