我想要一个闪亮的应用程序根据用户输入对我的数据框进行子集化。在这种情况下,“决定”是一个输入。我使用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列成为'决定'?我错过了一个论点吗?
答案 0 :(得分:2)
您想要decision = primaryDf[[decision]]
。
像这样,你只会提取列的值向量,而不是包含名称的列表元素的完整列(毕竟data.frames
是lists
)。
目前decision =
被现有名称直接覆盖。