Tôi muốn sử dụng dplyr::mutate()
để tạo nhiều cột mới trong khung dữ liệu. Tên cột và nội dung của chúng phải được tạo động.
Dữ liệu ví dụ từ iris:
library(dplyr)
iris <- tbl_df(iris)
Tôi đã tạo một hàm để thay đổi các cột mới của mình 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 một vòng lặp để xây dựng các cột của mình:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
Tuy nhiên, vì mutate nghĩ varname là tên biến theo nghĩa đen, nên vòng lặp chỉ tạo một biến mới (được gọi là varname) thay vì bốn (được gọi là petal.2 - petal.5).
Làm cách nào tôi có mutate()
thể sử dụng tên động của mình làm tên biến?
dplyr
có toàn bộ họa tiết về đánh giá không chuẩn
mutate_
, và nó thực sự không rõ ràng từ các chức năng khác làm thế nào để sử dụng nó.