【问题标题】:use assign / create new object with value (dplyr)使用分配/创建具有值的新对象(dplyr)
【发布时间】:2020-08-10 11:07:54
【问题描述】:

我想用我的DF 中的列号的值创建一个新变量。 我已经做到了:

firstCol <- which(colnames(Mydf) == "Cars")

它获取名为“Cars”的列的列号,并将其编号设置为对象 firstCol。它在基础上运行良好且良好。

最近,我一直在使用 dplyr 和管道,我正在尝试创建一个变量并使用管道做同样的事情,但我无法做到这一点 - 使用这条线但在管道中 %>% 你能帮助我吗? 谢谢, 伊多

【问题讨论】:

  • 嗨,你能dput() 一些数据将有助于提供帮助。 firstCol &lt;- subset(DF,DF$Mydf == 'Cars')这是你想要的吗?
  • 嘿!谢谢,但我不太明白,这条线很完美: firstCol %> firstCol %> 不工作
  • 你可以试试firstCol &lt;- Mydf %&gt;% select(Cars)
  • 这个创建一个带有列的df。我想要的是将列的索引放入全局环境中的新变量中。 (结果是一个名为 firstcol 的新变量,例如值为 17)
  • 引用此链接stackoverflow.com/questions/38474882/…。希望这会有所帮助,因为如果答案已经可用,答案可能会重复。

标签: r dplyr tidyverse


【解决方案1】:

dplyr 的方法是 select

这是一个使用一些虚构数据的示例:

df <- data.frame(cars = sample(LETTERS, 100, replace = TRUE),
                 mpg = runif(100, 15, 45),
                 color = sample(c("green", "red","blue", "silver"), 
                                100, replace = TRUE)) %>% tibbble()  
df %>% select(cars)
# A tibble: 100 x 1
   cars 
   <chr>
 1 R    
 2 V    
 3 I    
 4 Q    
 5 P    
 6 D    
 7 J    
 8 Q    
 9 R    
10 A    
# ... with 90 more rows

您还可以删除带有select(-col_name) 的列

df %>% select(-mpg)
# A tibble: 100 x 2
   cars  color 
   <chr> <chr> 
 1 R     blue  
 2 V     silver
 3 I     red   
 4 Q     green 
 5 P     silver
 6 D     silver
 7 J     green 
 8 Q     blue  
 9 R     red   
10 A     silver
# ... with 90 more rows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    相关资源
    最近更新 更多