在R中转换数据帧的格式
我是这个论坛的新手,很抱歉有任何问题。。。我有以下格式的数据框架(物质分类): A. B C D 1. 有机化合物 苯环型化合物 苯 NA 2. 有机化合物 苯环型化合物 苯 NA 3. 有机化合物 有机氧化合物 NA NA 4. NA NA NA NA 5. 有机化合物 苯环型化合物 NA NA在R中转换数据帧的格式,r,dataframe,R,Dataframe,我是这个论坛的新手,很抱歉有任何问题。。。我有以下格式的数据框架(物质分类): A. B C D 1. 有机化合物 苯环型化合物 苯 NA 2. 有机化合物 苯环型化合物 苯 NA 3. 有机化合物 有机氧化合物 NA NA 4. NA NA NA NA 5. 有机化合物 苯环型化合物 NA NA 库(dplyr) df$class这是否有效: library(dplyr) library(string) df %>% mutate(across(everything(),~ replac
库(dplyr)
df$class这是否有效:
library(dplyr)
library(string)
df %>% mutate(across(everything(),~ replace_na(., ''))) %>%
mutate(class = trimws(paste(A,B,C,D, sep = ';'),whitespace = "''"), class = str_remove(class, ';+$')) %>%
count(class, name = 'count') %>% filter(!str_detect(class,'^$'))
# A tibble: 3 x 2
class count
<chr> <int>
1 Organic compounds;Benzenoids 1
2 Organic compounds;Benzenoids;Benzene 2
3 Organic compounds;Organic oxygen compounds 1
库(dplyr)
库(字符串)
df%>%变异(跨越(所有事物(),~replace_na(,''))%>%
mutate(class=trimws(粘贴(A,B,C,D,sep=“;”),whitespace=“”),class=str_remove(class,;+$))%>%
计数(类,名称='count')%>%过滤器(!str_detect(类,^$))
#一个tibble:3x2
班级人数
1有机化合物;苯类化合物1
2有机化合物;苯类化合物;苯2
3有机化合物;有机氧化合物1
看一看谢谢你的帮助!@Ashish Baid的解决方案对我来说更容易理解。
library(dplyr)
library(string)
df %>% mutate(across(everything(),~ replace_na(., ''))) %>%
mutate(class = trimws(paste(A,B,C,D, sep = ';'),whitespace = "''"), class = str_remove(class, ';+$')) %>%
count(class, name = 'count') %>% filter(!str_detect(class,'^$'))
# A tibble: 3 x 2
class count
<chr> <int>
1 Organic compounds;Benzenoids 1
2 Organic compounds;Benzenoids;Benzene 2
3 Organic compounds;Organic oxygen compounds 1