来自现有的新data.frame()使用变量不会带有列名

时间:2018-02-27 16:05:47

标签: r dataframe shiny cbind

我想要一个闪亮的应用程序根据用户输入对我的数据框进行子集化。在这种情况下,“决定”是一个输入。我使用switch方法来获取决策的价值。我正在努力解决这个问题,因为我无法使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列成为'决定'?我错过了一个论点吗?

1 个答案:

答案 0 :(得分:2)

您想要decision = primaryDf[[decision]]

像这样,你只会提取列的值向量,而不是包含名称的列表元素的完整列(毕竟data.frameslists)。

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

相关问题