簡體   English   中英

R:重命名或復制數據框並按向量中的定義命名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM