假设我对数据框的某些列值进行了处理,如下所示:
id animal weight height ...
1 dog 23.0
2 cat NA
3 duck 1.2
4 fairy 0.2
5 snake BAD
df <- data.frame(id = seq(1:5),
animal = c("dog", "cat", "duck", "fairy", "snake"),
weight = c("23", NA, "1.2", "0.2", "BAD"))
Run Code Online (Sandbox Code Playgroud)
假设处理需要在单独的表中工作,并作为结果给出以下数据框,它是原始的子集:
id animal weight
2 cat 2.2
5 snake 1.3
sub_df <- data.frame(id = c(2, 5),
animal = c("cat", "snake"),
weight = c("2.2", "1.3"))
Run Code Online (Sandbox Code Playgroud)
现在我想把所有的东西放在一起,所以我使用这样的操作:
> df %>%
anti_join(sub_df, by = c("id", "animal")) %>%
bind_rows(sub_df)
id animal weight
4 fairy …Run Code Online (Sandbox Code Playgroud) 我有一个数据框列表,元素列表的名称包含有关每个数据框的信息.
这是一个可重复的例子,
list_df <- list(jan_2013 = data.frame(id = 1:10, x = rnorm(10), y = runif(10)),
feb_2013 = data.frame(id = 1:10, x = rnorm(10), y = runif(10)))
Run Code Online (Sandbox Code Playgroud)
如何使用元素名称中包含的信息在每个数据框中创建列?我正在处理purrr列表上的操作,那么如何使用purrr::map迭代每个数据框并访问列表中存储的元素名称?
$jan_2013
id x y meta_information
1 0.2 2.3 jan_2013
2 0.3 2.1 jan_2013
$feb_2013
id x y meta_information
1 0.1 2.4 feb_2013
2 1.4 2.1 feb_2013
Run Code Online (Sandbox Code Playgroud)