我有一个函数,它利用API将一个数据对象数组带入R,并将每个数据对象转换为csv和 Dataframe 。
API_to_dataframe <- function(dataset) {
#Define data input
data_input <- paste(dataset,"_data",sep='')
data_input <- postForm(
uri=api_url,
token=api_token,
content='record',
format='csv',
forms=dataset,
returnFormat = 'csv',
)
#Define data ouput
connection <- textConnection(data_input)
data_csv <- read.csv(connection)
write.csv(data_csv, paste('//Data/',dataset,'.csv',sep=''))
# Convert data to a data frame and assign each data frame a differnt variable name
d <- data.frame(data_csv)
assign(paste("df_",dataset),d,envir = .GlobalEnv)
}
#Call function by passing in form names as an array and then looping through
API_to_dataframe_parameters <- c("dataset_1",
"dataset_2",
"dataset_3"
)
for (val in API_to_dataframe_parameters) {
print(paste(val,"completed"))
API_to_dataframe(val)
}
虽然这和预期的一样,但有趣的是R在我创建的dataframe变量周围加了引号,当我在R studio中输入变量时,它会自动用引号完成它,例如:
`df_dataset_1`
它仍然被看作是一个 Dataframe ,但是当把这个 Dataframe 传递给其他方法和函数时,我认为这会把事情搞砸,我怎么才能返回这些没有有趣引号的 Dataframe 变量名呢?
1条答案
按热度按时间ztigrdn81#
试试这个:
变更:
致:
或(同等):
在
data.frame
的变量名中输入空格会导致引号。在变量名中省略空格(例如paste0
或paste(x,y,sep="")
)可以解决此问题。