R中 Dataframe 变量名称周围的向后勾号(引号)?

4nkexdtk  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(110)

我有一个函数,它利用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 变量名呢?

ztigrdn8

ztigrdn81#

试试这个:
变更:

assign(paste("df_",dataset),d,envir = .GlobalEnv)

致:

assign(paste0("df_",dataset),d,envir = .GlobalEnv)

或(同等):

assign(paste("df_",dataset, sep=""),d,envir = .GlobalEnv)

data.frame的变量名中输入空格会导致引号。在变量名中省略空格(例如paste0paste(x,y,sep=""))可以解决此问题。

相关问题