Tôi muốn sử dụng dplyr'smutate()
để tạo nhiều cột mới trong một khung dữ liệu. Tên cột và nội dung của chúng phải được tạo động.dplyr - mutate: sử dụng tên biến động
Ví dụ dữ liệu từ iris:
require(dplyr)
data(iris)
iris <- tbl_df(iris)
tôi đã tạo ra một chức năng để đột biến cột mới của tôi từ Petal.Width
biến:
multipetal <- function(df, n) {
varname <- paste("petal", n , sep=".")
df <- mutate(df, varname = Petal.Width * n) ## problem arises here
df
}
Bây giờ tôi tạo ra một vòng lặp để xây dựng các cột của tôi:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
Tuy nhiên, vì biến thể nghĩ varname là tên biến chữ, vòng lặp chỉ tạo ra một biến mới (gọi là varname) thay vì bốn (gọi là petal.2 - petal.5).
Làm cách nào để có được mutate()
để sử dụng tên động của tôi làm tên biến?
tôi không khẳng định trên đột biến, tôi hỏi nếu nó có thể. Có lẽ đó chỉ là một mẹo nhỏ mà tôi không biết. Nếu có cách khác, hãy nghe nó. –
tôi tin rằng có [không gian để xem] (https://github.com/hadley/dplyr/issues/352#issuecomment-53829862) trong [gói lười biếng] (https://github.com/hadley/lazyeval) – baptiste
Tại thời điểm này, 'dplyr' có [toàn bộ họa tiết trên đánh giá phi tiêu chuẩn] (https://cran.r-project.org/web/packages/dplyr/vignettes/nse.html) – Gregor