我想構建我的函式來更改列名。
x1 = c(1:5)
x2 = c(6:10)
x = data.frame(
X1 = x1,
X2 = x2
)
myFunction = function(x) {
x <- rename(x, "newX1" = "X1")
x <- rename(x, "newX2" = "X2")
newX <- x
return(newX)
}
print(myFunction(x))
輸出如下:
newX1 newX2
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
我可以看到我想要的結果,但輸出不會作為資料存盤在我的記憶體中。我想使用函式的輸出(資料)進行下一個程序。
謝謝你。
uj5u.com熱心網友回復:
有很多代碼在您的嘗試中是不需要的——本質上您只是為該rename()函式創建了一個包裝器,而沒有向它添加太多內容。你可以做
rename(x, "newX1" = "x1", "newX2" = "x2"))
要讓它分配給物件,然后你可以做
x <- rename(x, "newX1" = "x1", "newX2" = "x2"))
或者
assign("x", rename(x, "newX1" = "x1", "newX2" = "x2"))
根據您的評論,您似乎有很多 data.frames 想要進行相同的重命名,您可以使用for回圈自動執行此操作
# Exmaple datasets
df1 <- df2 <- df3 <- df4 <- df5 <- data.frame(x1 = 1:5, x2 = 6:10)
# Define datasets to rename
datasets_to_rename <- c("df1", "df2", "df3")
# Rename the selected datasets
for(i in datasets_to_rename){
assign(i, rename(get(i), "newX1" = "x1", "newX2" = "x2"))
}
如果您想對全域環境中的所有 data.frames 執行此操作,則可以使此操作更加自動化
for(i in names(Filter(is.data.frame, as.list(.GlobalEnv)))){
assign(i, rename(get(i), "newX1" = "x1", "newX2" = "x2"))
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/387367.html
上一篇:在javascript函式中使用HTML表單資料的問題
下一篇:如何使用函式回傳C中的二維陣列?
