gpt4 book ai didi

r - 在 tidyverse 中每隔一行填充上一层

转载 作者:行者123 更新时间:2023-12-04 12:15:19 25 4
gpt4 key购买 nike

我正在学习 R 并且在使用 tidry 和 dplyr 时遇到了障碍。

我在 R 中有一个数据框,其中第一列是一个因子,每隔一行只有一个级别。我想弄清楚如何使用 tidyverse 工具来填充。

我试过使用填充和替换,但似乎都不起作用。

td <- data.frame("State" = c("NY", "", "OH", ""), "Your" = c(101:104), "Name" = c(5:8))

td
State Your Name
<fctr> <int> <int>
NY 101 5
102 6
OH 103 7
104 8

我想得到的是
State    Your    Name
<fctr> <int> <int>
NY 101 5
NY 102 6
OH 103 7
OH 104 8

使用 tidyr 或 dplyr

最佳答案

一种选择是用 "" 替换空白 ( NA ) ( na_if ) 并使用 fill来自 tidyr用之前的非 NA 相邻元素填充 NA 元素

library(tidyverse)
td %>%
mutate(State = na_if(State, "")) %>%
fill(State)
# State Your Name
#1 NY 101 5
#2 NY 102 6
#3 OH 103 7
#4 OH 104 8

或使用 base R
i1 <- td$State != ""
td$State <- with(td, State[i1][cumsum(i1)])

关于r - 在 tidyverse 中每隔一行填充上一层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52558314/

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