这里有个数据/变异问题..。我想根据另一个数据(df2)中的数据更新一个数据( dataframe,df2)。首先,我使用了变体,所以我认为这是可行的方法。另外,我希望添加一个检查函数(真/假?)指示是否更新了df1中的字段。
例如..。
df1-
State
<chr>
1 N.Y.
2 FL
3 AL
4 MS
5 IL
6 WS
7 WA
8 N.J.
9 N.D.
10 S.D.
11 CALL
df2
State New_State
<chr> <chr>
1 N.Y. New York
2 FL Florida
3 AL Alabama
4 MS Mississippi
5 IL Illinois
6 WS Wisconsin
7 WA Washington
8 N.J. New Jersey
9 N.D. North Dakota
10 S.D. South Dakota
11 CAL California 我希望输出结果像这样
df3
New_State Test
<chr>
1 New York TRUE
2 Florida TRUE
3 Alabama TRUE
4 Mississippi TRUE
5 Illinois TRUE
6 Wisconsin TRUE
7 Washington TRUE
8 New Jersey TRUE
9 North Dakota TRUE
10 South Dakota TRUE
11 CALL FALSE本质上,我希望R读取df1中的数据,并根据df2链接中的匹配更改df1,并将其链接到完整的状态名称和替换。最后,如果df1中的数据被更新,则标记为"TRUE“(纽约到纽约),如果没有更新,则标记为"FALSE”(CALL vs CAL)
提前感谢您的帮助。
发布于 2020-04-12 21:40:20
这应该会给你你想要的结果:
match_vec <- match(df1$State, table = df2$State)该向量应该匹配df1中的所有缩写状态名称和df2中的缩写状态名称。在没有匹配的地方,您将得到一个丢失的值:
然后,以下使用dplyr的代码将生成所请求的df3。
library(dplyr)
df3 <- df1 %>%
mutate(New_State = df2$New_State[match_vec]) %>%
mutate(Test = !is.na(match_vec)) %>%
mutate(New_State = ifelse(is.na(New_State),
State, New_State)) %>%
select(New_State, Test)https://stackoverflow.com/questions/61177424
复制相似问题