gpt4 book ai didi

r - 获取一行中的第一个非 NA 元素

转载 作者:行者123 更新时间:2023-12-03 15:13:28 26 4
gpt4 key购买 nike

我有一个数据框,其中每一行都应主要包含“无响应”值( -1 )。我想获取不是 -1 的每一行的第一个值,最好使用整洁友好的东西。

# A tibble: 3,222 x 10
tracc1 tracc2 tracc3 tracc4 tracc5 tracc6 tracc7 tracc8 tracc9 tracc10
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 1 -1 -1 -1 -1 -1 7 -1 -1 -1
2 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
3 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
4 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
5 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
6 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
7 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
8 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
9 -1 -1 3 -1 -1 -1 -1 -1 -1 -1
10 1 -1 -1 -1 -1 -1 -1 -1 -1 -1
# ...

我可以使用 dpylr::unite合并所有列,但是当单行有多个有效响应时会出现问题。在下面的例子中,第一行应该产生 1而不是 17 .
> df %>%
mutate_at(vars(starts_with("tracc")),
function(t) {if_else(t < 0,"",t)}) %>%
unite("tracc",starts_with("tracc"),sep = "", na.rm = TRUE)
# A tibble: 3,222 x 1
tracc
<chr>
1 17
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 3
10 1
# ...

最佳答案

试试这个简单的代码:

apply(df, 1, function(x) x[x != -1][1])

它同时适用于每一行。

关于r - 获取一行中的第一个非 NA 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58598983/

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