在使用R时,我想我可以使用列名中的常用词来调用多个列。但是,我感到困惑的是,有时只调用具有完全相同列名的列,有时调用列名中包含该列名的多个列。我看不出密码之间有什么区别:
。
表A
msleep %>% select(genus, vore, conservation) %>% na.omit
这段代码给了我三列:“属”,“vore”,“养护”
表B
library(VIM) msleep %>% select(genus, vore, conservation) %>% na.omit %>% kNN(k=5)
然而,这个代码为我提供了6列:“属”、“vore”、“保育”和“genus_imp”、“vore_imp”、“conservation_imp”
。
我看不出这两行代码之间有什么明显的区别,所以我很困惑。如何判断dplyr::select()函数是否会给出列的完全相同的列名?
发布于 2021-06-30 09:50:38
select函数的行为在这两种代码中都没有改变。select函数返回具有完全相同的列名的列,但由于在第二种情况下应用kNN函数--返回带有其他列的估算数据集--您将得到genus_imp、vore_imp和conservation_imp列。
library(VIM)
step1 <- msleep %>%
select(genus, vore, conservation) %>%
na.omit
step1
# A tibble: 52 x 3
# genus vore conservation
# <chr> <chr> <chr>
# 1 Acinonyx carni lc
# 2 Aplodontia herbi nt
# 3 Blarina omni lc
# 4 Bos herbi domesticated
# 5 Callorhinus carni vu
# 6 Canis carni domesticated
# 7 Capreolus herbi lc
# 8 Capri herbi lc
# 9 Cavis herbi domesticated
#10 Cercopithecus omni lc
# … with 42 more rows第一步返回完全相同的3列,但是在添加kNN函数之后,您将得到更多的列。
step1 %>% kNN(k=5)
# genus vore conservation genus_imp vore_imp conservation_imp
#1 Acinonyx carni lc FALSE FALSE FALSE
#2 Aplodontia herbi nt FALSE FALSE FALSE
#3 Blarina omni lc FALSE FALSE FALSE
#4 Bos herbi domesticated FALSE FALSE FALSE
#5 Callorhinus carni vu FALSE FALSE FALSE
#....
#....如果需要,您可以再次添加select step1 %>% kNN(k=5) %>% select(genus, vore, conservation)来选择这3列。
https://stackoverflow.com/questions/68191925
复制相似问题