2017-01-23 44 views
1

在這裏這麼多的答案,海報建議避免使用assign()創建新的變量在循環中,像這樣的代碼this question轉載這裏:避免使用R中分配()

myDf <- mtcars 
splitVar <- factor(myDf$gear) 
levelsVar <- levels(splitVar) 
splitDataFrame <- split(myDf, splitVar) 
for (i in 1:length(levelsVar)) { 
    assign(paste0("newDataFrameGear", levelsVar[i]), data.frame(splitDataFrame[i])) 
} 
ls(pattern = "^newData") 

This post解釋了爲什麼被認爲是不好的做法,但還有什麼其他選擇可以防止這種情況發生?

+0

你有沒有[谷歌](http://stackoverflow.com/questions/17559390/why-is-using-分配壞)? –

+0

副本可能只包含「壞」部分。難道他的問題的解決方法部分仍然沒有答案? –

+0

我有2個問題。標記爲重複的問題並未顯示如何防止此問題的好例子。 –

回答

1

爲什麼不繼續使用原來的名單,但分配的名稱你想要的:

names(splitDataFrame) <- paste0("newDataFrameGear", 
           as.character(levels(splitVar))) 
+0

感謝您的回答,但我的意思是更通用的解決方案,不僅針對特定情況。 –