我正在嘗試從 R 中的多個資料幀中保存列名。我目前正在使用帶有 Glue 的字串語法,但目前我只是不斷收到“NULL”
我在這里構建了一個示例。我在下面有這兩個資料框:
over50_one <- c("n", "n", "n", "y", "n")
Gender_one <- c("F", "F", "M", "M", "F")
Name_one <- c("Jon", "Bill", "Maria", "Ben", "Tina")
Age_one <- c(23, 41, 32, 58, 26)
df_one <- data.frame(Name_one, Age_one,Gender_one,over50_one)
over50_two <- c("n", "n", "n", "y", "n")
Gender_two <- c("F", "F", "M", "M", "F")
Name_two <- c("Jon", "Bill", "Maria", "Ben", "Tina")
Age_two <- c(23, 41, 32, 58, 26)
df_two <- data.frame(Name_two, Age_two,Gender_two,over50_two)
我創建了這個回圈來將列名保存到'names':
list_loop <- c('one','two')
for(number in list_loop) { # Head of for-loop
print(number)
names <- names(glue('df_{number}'))
print(names)
}
但是我得到的名字的輸出是 NULL,當我應該得到 over50_one、gender_one、name_one 等等等等。任何幫助都會很棒。
uj5u.com熱心網友回復:
這里發生了幾件事。首先,您為 name 物件分配 name names,這也是您正在呼叫的函式的名稱。您應該呼叫它my_names或類似名稱。
其次,當你這樣做時names(glue('df_{number}')),你是names('df_one')在第一次迭代中進行,即包含一個元素的字符向量的名稱,而不是名為 的資料框df_one。該向量沒有任何名稱,因此它回傳NULL.
而不是使用glue,我會做類似的事情:
list_loop <- ls(pattern = "^df_")
for(my_df in list_loop) {
print(my_df) # Head of for-loop
my_names <- names(get(my_df))
print(my_names)
}
# [1] "df_one"
# [1] "Name_one" "Age_one" "Gender_one" "over50_one"
# [1] "df_two"
# [1] "Name_two" "Age_two" "Gender_two" "over50_two"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/483712.html
上一篇:在bash中回圈用戶輸入
