new data.frame() from existing using a variable 不会继承列名

new data.frame() from existing using a variable doesn't carry over column name

我想要一个闪亮的应用程序来根据用户输入对我的数据框进行子集化。在这种情况下,'decision' 是一个输入。我使用 switch 方法来获取 decision 的值。我正在努力解决这个问题,因为我无法让 colnames() 方法在反应函数中创建的数据框上正常工作,因为数据框变成了一个函数并且没有列。作为解决方案,我试图在通过反应函数发送名称之前设置名称。但是,当我使用变量来确定将哪一列拉入我的新df时列的名称并没有改变,所以下面的功能被抛出。

primaryDf <- read.csv('InteractionsFormattedRolling.csv', header = TRUE, sep = ',')
head(primaryDf)

  Month.of.Lifespan Row.Labels Average.of.Event.Value Average.of.Average.Sentiment Average.of.MGT.Fee Sum.of.UniqueID
1                 1         AL                   4.00                         3.00             600.00             311
2                 1         AR                   1.50                         3.00             600.00              83



decision <- "Average.of.Average.Sentiment"
newDf <- data.frame(lifespan = primaryDf$Month.of.Lifespan, label = primaryDf$Row.Labels, decision = primaryDf[decision])
head(newDf)

  lifespan label Average.of.Average.Sentiment
1        1    AL                         3.00
2        1    AR                         3.00
3        1    AZ                         3.00

如何让 data.frame 的第 3 列成为 'decision'?我错过了一个论点吗?

你想要decision = primaryDf[[decision]].

像这样,您将只提取列值的向量,而不是作为包含名称的列表元素的完整列(data.frames 毕竟是 lists)。

目前 decision = 正在被现有名称直接覆盖。