标签:logic ica 基础 部分 bind select 保留 整合 大于
secect方法内添加列的名称即可,添加顺序决定output顺序。如果只是调整列的顺序,可在选择列后,使用everything(),添加剩余所有的列。
msleep %>%
select(conservation, sleep_total, everything()) %>%
glimpse
select()可以在选择列的时候直接对列名进行重命名,但在保留所有的列时又要改名,要使用rename()。
msleep %>%
select(animal = name, sleep_total, extinction_threat = conservation) %>% glimpse
###rename
msleep %>%
rename(animal = name, extinction_threat = conservation) %>%
glimpse
添加多列可以使用 : (start_col:end_cols)来提高效率,如果选择几个部分的列,列之间有间隔,你可以取消选择不用的列,用,号分隔后继续选择想要的列。
在取消列时,依然可以使用减号-进行操作。
###glimpse,可以快速查看选择输出的列,而不用输出显示所有的列,建议常使用
msleep %>%
select(name:order, sleep_total:sleep_cycle) %>%
glimpse
###取消某些列
msleep %>%
select(-conservation, -(sleep_total:awake)) %>%
glimpse
###可以全部取消,在选择想要列,例子中,conservation包含在name:awake区间
msleep %>%
select(-(name:awake), conservation) %>%
glimpse
根据列的特点选择特定的列,如列名的开头starts_with()、结尾ends_with()、包含字符串contains()、正则匹配matches()、预先设定的列名one_of()来选择。
###避免连续重新输入列名:one_of()。 您可以预先设置列名,然后在select()语句中通过将它们包装在one_of()中或使用!!运算符来引用它们。
classification <- c("name", "genus", "vore", "order", "conservation")
msleep %>% select(!!classification)
select_if() 根据条件选择,select_if()允许传递返回逻辑语句的函数is.numeric,is.character,is.integer,is.double,is.logical,is.factor,你有日期列,你可以加载lubridate包,并使用is.POSIXt或is.Date
my_data %>% select_if(is.numeric)
select_if()可以选择否定,但此时需要添加波型符号将函数传递给seclect_if(), 实际上就是select_if()、select_all()、select_at() 将内部的函数(将添加了否定符号整体作为一个函数)当做参数来传递。如果你必须添加任何否定或者参数,你可以将其包装在funs(),也可以创建自定义的函数。
select_if
可以根据任何逻辑函数进行选择,而不仅仅基于数据类型。如选择平均值大于100所有的列。但要注意选择是数字类型的列,在使用均值函数mean时,mean()>100本身不是一个函数,应该添加波浪号或者包装在funs()中,将语句转为函数。
###分步骤
msleep %>%
select_if(is.numeric) %>%
select_if(~mean(., na.rm=TRUE) > 100)
###整合在一起
msleep %>%
select_if(~is.numeric(.) & mean(., na.rm=TRUE) > 10)
select_if() 还有一个比较常用的功能就是和n_distinct()一起使用,筛选出不同列中包含不同值的数量,同样n_distinct()<nums 也需要用波浪号转为函数。因为n_distinct()<nums 并不是函数。
msleep %>% select_if(~n_distinct(.) < 10)
select_all()可以将函数作为参数更改所有列,如使用toupper(),tolower()转换大小写列名。也可以在选择的时候对列名进行规范处理,如结果str_replace()替换不规则的列名符号。
msleep2 %>% select_all(~str_replace(., " ", "_"))
基础方法
bind(Me.id=rownames(norm_order_betadata),norm_order_betadata)
rownames(norm_order_betadata) <- NUL
使用dplyr包
norm_order_betadata %>%
tibble::rownames_to_column("Me.id")
标签:logic ica 基础 部分 bind select 保留 整合 大于
原文地址:https://www.cnblogs.com/Cobby-baby/p/12711928.html