我正在嘗試創建一個回圈,該回圈重命名資料框串列中的一些變數并使用變數對行進行排序。我已嘗試使用此代碼(_var1,_var2并且var3存在于每個資料幀中):
dfnames <- c("df1", "df2", "df3", "df4", "df5", "df5", "df6")
for (cur.dfname in dfnames) {
cur.df <- get(cur.dfname)
cur.df <- rename(cur.df, var1 = "_var1", var2 = "_var2")
cur.df <- arrange(cur.df, var3, desc(var1))
}
此代碼似乎不起作用,并且不會生成錯誤訊息。
uj5u.com熱心網友回復:
該物件cur.df僅在 ( ) 回圈的范圍內是已知的。要在回圈外更改資料幀,您可以將其分配給父環境,例如:
for (cur.dfname in dfnames) {
cur.df <- get(cur.dfname)
cur.df <- rename(cur.df, 'var1' = '_var1')
cur.df <- arrange(cur.df, 'var1')
## manipulate objects beyond the loop scope:
assign(cur.dfname, cur.df, envir = parent.frame(1))
}
請注意,這種范圍破壞被認為是不好的做法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/454305.html
上一篇:如何在jQuery中運行回圈以重新讀取定義的陣列集?
下一篇:傳遞一個陣列以在C中回圈遍歷它
