在R中创建列的序列

时间:2018-03-19 06:40:08

标签: r dplyr

如何创建一系列列(让我们说X1,X2,...,X100),其值取决于列索引(1-100),或者(理想情况下)不使用for循环?

以下是我对for循环的尝试(它不起作用 - 我认为它与使用粘贴创建列的名称有关。但我相信它描述得很好我想实现。

data <- runif(10)
data <- as_tibble(data)
for (i in 1:100){
  data <- data %>% mutate(paste('X', i, sep = '') = (value > 0.01 * i))
}

1 个答案:

答案 0 :(得分:3)

我们可以将map!!

一起使用
library(tidyverse)
map(1:100, ~ data %>% 
              transmute(!! paste0("X", .x) := value > 0.01 * .x)) %>% 
   bind_cols(data, .)

或使用for循环

for (i in 1:100){
     data <- data %>% 
                  mutate(!! paste('X', i, sep = '') := (value > 0.01 * i))
 }