R 将列名与另一个数据帧匹配并拆分为单独的数据帧
我有一个数据帧df,看起来像这样:R 将列名与另一个数据帧匹配并拆分为单独的数据帧,r,R,我有一个数据帧df,看起来像这样: tex21.222 chic56.345 wa34.907 0.5 0.6 1.12 0.8 1.2 0.9 site_name sample_name tex_1 tex21.222 tex_1 tex23.234 chic_1 chic56.345 wa_1 wa34.907 wa_2 wa24.277 我想根据另一
tex21.222 chic56.345 wa34.907
0.5 0.6 1.12
0.8 1.2 0.9
site_name sample_name
tex_1 tex21.222
tex_1 tex23.234
chic_1 chic56.345
wa_1 wa34.907
wa_2 wa24.277
我想根据另一个名为keys的数据帧将此数据帧划分为单独的数据帧,如下所示:
tex21.222 chic56.345 wa34.907
0.5 0.6 1.12
0.8 1.2 0.9
site_name sample_name
tex_1 tex21.222
tex_1 tex23.234
chic_1 chic56.345
wa_1 wa34.907
wa_2 wa24.277
对于df的每一列,我希望1将列名与键中的sample_name进行匹配以获得site_name,2将具有相同site_name的所有列从df移动到单独的数据帧中
所以,最后,我希望有单独的数据帧,所有列都在tex_1中,所有列都在chic_1中,等等
如何执行此操作?请尝试下一个代码:
library(dplyr)
library(tidyr)
#Code
data <- df %>% pivot_longer(everything()) %>%
left_join(keys,by = c('name'='sample_name'))
#Split
List <- split(data,data$site_name)
List <- lapply(List,function(x) {x$site_name<-NULL;x})
list2env(List,envir = .GlobalEnv)
产出:
List
$chic_1
# A tibble: 2 x 2
name value
<chr> <dbl>
1 chic56.345 0.6
2 chic56.345 1.2
$tex_1
# A tibble: 2 x 2
name value
<chr> <dbl>
1 tex21.222 0.5
2 tex21.222 0.8
$wa_1
# A tibble: 2 x 2
name value
<chr> <dbl>
1 wa34.907 1.12
2 wa34.907 0.9
请尝试下一个代码:
library(dplyr)
library(tidyr)
#Code
data <- df %>% pivot_longer(everything()) %>%
left_join(keys,by = c('name'='sample_name'))
#Split
List <- split(data,data$site_name)
List <- lapply(List,function(x) {x$site_name<-NULL;x})
list2env(List,envir = .GlobalEnv)
产出:
List
$chic_1
# A tibble: 2 x 2
name value
<chr> <dbl>
1 chic56.345 0.6
2 chic56.345 1.2
$tex_1
# A tibble: 2 x 2
name value
<chr> <dbl>
1 tex21.222 0.5
2 tex21.222 0.8
$wa_1
# A tibble: 2 x 2
name value
<chr> <dbl>
1 wa34.907 1.12
2 wa34.907 0.9
使用合并+堆栈+拆分的基本R选项
使用合并+堆栈+拆分的基本R选项
这正是我想要的,谢谢:@fifigoblin总是很乐意帮助你!这正是我想要的,谢谢:@fifigoblin总是很乐意帮助你!