我想創建一個函數,根據它們的位置來選擇DF中的列。我將始終需要第一列,然後是DF的一個子集。我需要選擇每個子集有1個對象。dplyr:在NSE中按位置選擇列
到目前爲止,我已經試過如下:
position <- "1,28:31" DF %>% select_(.dots = position)
,但我收到以下錯誤: Error in parse(text = x) : <text>:1:2: unexpected 'x'
這似乎問題出在列位置逗號分隔。
是否有解決方法?
我想創建一個函數,根據它們的位置來選擇DF中的列。我將始終需要第一列,然後是DF的一個子集。我需要選擇每個子集有1個對象。dplyr:在NSE中按位置選擇列
到目前爲止,我已經試過如下:
position <- "1,28:31" DF %>% select_(.dots = position)
,但我收到以下錯誤: Error in parse(text = x) : <text>:1:2: unexpected 'x'
這似乎問題出在列位置逗號分隔。
是否有解決方法?
Select.by.pos <- function(pos, dt){
return(dt[, pos])
}
的pos參數不應該是一個字符串,但一個numeeic矢量:) dt爲數據幀
你可以只使用select
與指數的數值向量:
positions <- c(1,28:31)
DF %>% select(positions)
使用mtcars
和:
auto
作爲我的第一列mtcars %>% mutate(auto = row.names(.)) %>% select(auto, 1, contains('a')) %>% dplyr::filter(rowSums(.[-1]) > mean(rowSums(.[-1])))
auto mpg drat am gear carb
1 Mazda RX4 21.0 3.90 1 4 4
2 Mazda RX4 Wag 21.0 3.90 1 4 4
3 Datsun 710 22.8 3.85 1 4 1
4 Merc 240D 24.4 3.69 0 4 2
5 Merc 230 22.8 3.92 0 4 2
6 Merc 280 19.2 3.92 0 4 4
7 Fiat 128 32.4 4.08 1 4 1
8 Honda Civic 30.4 4.93 1 4 2
9 Toyota Corolla 33.9 4.22 1 4 1
10 Fiat X1-9 27.3 4.08 1 4 1
11 Porsche 914-2 26.0 4.43 1 5 2
12 Lotus Europa 30.4 3.77 1 5 2
13 Ferrari Dino 19.7 3.62 1 5 6
14 Maserati Bora 15.0 3.54 1 5 8
15 Volvo 142E 21.4 4.11 1 4 2
總是需要在第一列,然後某些列;其中返回的數據將是col [1]和col [x,y,z]子集? –
position <-c('1','28:31')將起作用。 –