我可以用 R 重塑和填充 tibble() 中的数字吗?
Can I reshape and fill a number in tibble() with R?
我是 R 编程 + tidyverse 的新手。
如下图所示,我要填写每行每列的Item名称对应的NA
然后我想每个地区名称只保留一行。
我如何在 tidyverse 或典型的 R 编程中做到这一点?
from
District Name Item Score TB_E04a TB_E04b TB_E04d
------------------------------------------------------------
Anderson County TB_E04a 0.51 NA NA NA
Anderson County TB_E04b 0.68 NA NA NA
Anderson County TB_E04d 0.67 NA NA NA
Clinton City TB_E04a 1.00 NA NA NA
Clinton City TB_E04b 1.00 NA NA NA
Clinton City TB_E04d 1.00 NA NA NA
to
District Name Item Score TB_E04a TB_E04b TB_E04d
------------------------------------------------------------
Anderson County TB_E04a 0.51 0.51 0.68 0.67
......(So on)
是这样的吗?
library(dplyr)
library(tidyr)
df %>%
select(-starts_with("TB")) %>%
pivot_wider(
names_from = Item,
values_from = Score
)
District Name TB_E04a TB_E04b TB_E04d
<chr> <chr> <dbl> <dbl> <dbl>
1 Anderson County 0.51 0.68 0.67
2 Clinton City 1 1 1
基础 R:reshape
df1 <- reshape(df,
v.names = "Score",
idvar = "District",
timevar = "Item",
direction = "wide")
df1 <- df1[,c(1:2, 6:8)]
df1
District Name Score.TB_E04a Score.TB_E04b Score.TB_E04d
1 Anderson County 0.51 0.68 0.67
4 Clinton City 1.00 1.00 1.00
我是 R 编程 + tidyverse 的新手。
如下图所示,我要填写每行每列的Item名称对应的NA
然后我想每个地区名称只保留一行。
我如何在 tidyverse 或典型的 R 编程中做到这一点?
from
District Name Item Score TB_E04a TB_E04b TB_E04d
------------------------------------------------------------
Anderson County TB_E04a 0.51 NA NA NA
Anderson County TB_E04b 0.68 NA NA NA
Anderson County TB_E04d 0.67 NA NA NA
Clinton City TB_E04a 1.00 NA NA NA
Clinton City TB_E04b 1.00 NA NA NA
Clinton City TB_E04d 1.00 NA NA NA
to
District Name Item Score TB_E04a TB_E04b TB_E04d
------------------------------------------------------------
Anderson County TB_E04a 0.51 0.51 0.68 0.67
......(So on)
是这样的吗?
library(dplyr)
library(tidyr)
df %>%
select(-starts_with("TB")) %>%
pivot_wider(
names_from = Item,
values_from = Score
)
District Name TB_E04a TB_E04b TB_E04d
<chr> <chr> <dbl> <dbl> <dbl>
1 Anderson County 0.51 0.68 0.67
2 Clinton City 1 1 1
基础 R:reshape
df1 <- reshape(df,
v.names = "Score",
idvar = "District",
timevar = "Item",
direction = "wide")
df1 <- df1[,c(1:2, 6:8)]
df1
District Name Score.TB_E04a Score.TB_E04b Score.TB_E04d
1 Anderson County 0.51 0.68 0.67
4 Clinton City 1.00 1.00 1.00