R:重命名或复制数据框并将其命名为向量中定义的

标签 r rename

我想从现有的数据框创建一个新的数据框并将其命名为向量中定义的:

我有一个包含许多不同问题的数据集,为了更快地浏览数据集,我开发了一个可以调用的通用函数列表。对于每个问题,我都定义了具体的值,如下所示。在第二部分,我或多或少地为问题创建了一个干净的数据集,它被保存为一个名为“questionid”的数据框。因为每个问题都会覆盖该变量,我想创建此数据框的副本并按照“问题名称”下指定的方式调用它(在本例中为“A1”)。我发现很难找到简单的方法来做到这一点。我希望有人能帮助我。

# Specify vectors and variables
  question <- "Would you recommend edX to a friend of you?" 
  questionname <- "A1" 
  edXid <- "i4x-DelftX-ET3034TUx-problem-b3d30df864ca41ffa0170e790f01a783_2_1" 
  clevels <- c("0 - Not at all likely", "1", "2", "3", "4", "5 - Neutral", "6", "7", "8", "9", "10 - Extremely likely") 
  csvname <- paste(questionname, ".csv", sep="") 
  pngname <- paste(questionname, ".png", sep="") 

# Run code
  questionid <- subset(allDatasolar, allDatasolar[,3]==edXid, select = -c(X,question))
  questionid <- questionid[-grep("dummy", questionid$answer), ] 
  questionid <- droplevels(questionid) 
  # as.name(questionname) <- as.data.frame(questionid) # does not work
  questionid$answer <- factor(questionid$answer, ordered=TRUE, levels=clevels) 
  write.csv(data.frame(summary(questionid$answer)), file = csvname) 
  png(file = pngname, width = 640) 
  barchart(questionid$answer, main = question, xlab = "", col='lightblue')
  dev.off() 

最佳答案

你正在寻找assign


>question = "What do you need?" 
>questionname = "A1" 
>  
>questionid = data.frame(question, x="minimal working example")
>
>assign(questionname, questionid)
>
>A1

           question                       x
1 What do you need? minimal working example

Assign 将字符串(或字符变量,在本例中)作为第一个参数,并创建一个具有该名称的对象,该对象是第二个参数中任何内容的副本。在这种情况下,您可以随时覆盖 questionid 数据框,但您将根据“questionname”变量值沿途进行复制。

关于R:重命名或复制数据框并将其命名为向量中定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20752928/

相关文章:

regex - R dplyr : rename variables using string functions

dictionary - Elixir:重命名字典中的键

linux重命名多个非utf-8的文件

sql - 重命名主键和外键的 VALUES

linux - 将具有特殊字符 _ 的多个文件重命名为?

mysql - 安装 RMysql RHEL 7.3 出错

R Prophet add_regressor 给出奇怪的结果

r - 在 Shiny 的应用程序中过滤数据,但在更新表时将值保留在 selectInput 中

R - 带有图例的 z 值的彩色散点图点

r - 用前导零填充到公共(public)宽度