我建立了一个闪亮的应用程序,它可以接受用户上传的CSV文件并为其添加表头和一些新列,以便之后进行一些计算。
上传的CSV文件包含2列,如下所示:
1 0.21
1 0.20
1 0.23
2 0.40
2 0.42
2 ...
我使用以下代码上传文件(该代码已经工作):
data1<- reactive({
inFile <- input$file1
if(is.null(inFile)){return()}
data1<- read.csv(file=inFile$datapath,header =input$header,sep=input$sep)
})
下一步是将标题添加到这两列,并以以下方式添加另外两列:
Dose Response SquareRoot Log
1 0.21 sq(Response) log(Response)
1 0.20 ... ...
1 0.23 ... ...
2 0.40 ... ...
2 0.42 ... ...
2 ...
在R会话中,我要使用的代码是这样的:
data1<- read.csv(file=inFile$datapath,header =input$header,sep=input$sep)
colnames(data1) <-c("Dose","Response")
data1$ResponseLog <- log10(data1$Response + 1)
data1$ResponseSqRoot <- sqrt(data1$Response + 1)
如果我在Rshiny应用程序中添加这些行,它不起作用并给出错误:ERROR:argument of length 0,即使我只是使用
colnames()
定义列名。所以我的问题是,有没有办法编辑我刚上传的数据框?如果已经有人问过这个问题,你能否将我重定向到那里,因为我找不到解决方案。希望我提供的细节足够让你理解这个问题。
reactiveFileReader()
上传文件,然后创建一个新对象,使我能够修改数据框。我是对的吗? - Daniele Avancini