[英]R: Rename or copy dataframe and naming it as defined in a vector
我想从一个现有的数据帧创建一个新的数据帧,并将其命名为向量中的定义:
我有一个包含许多不同问题的数据集,为了更快地浏览数据集,我开发了一个可以调用的泛型函数列表。 对于每个问题,我定义了具体的值,如下所示。 在第二部分中,我或多或少为问题创建了一个干净的数据集,将其保存为名为“ questionid”的数据框。 因为每个问题都会覆盖该变量, 所以我想创建此数据帧的副本,并按照'questionname' (在本例中为“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”变量值进行复制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.