[英]loop through multiple dataframes and save column names using glue R
我正在嘗試從 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 等等等等。任何幫助都會很棒。
這里發生了幾件事。 首先,您正在調用您的對象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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.