有没有办法在read.table/read.csv中使用colClasses参数时指定Date格式?
(我意识到我可以在导入后进行转换,但是有很多像这样的日期列,在导入步骤中更容易实现)
我有一个.csv格式的日期列%d/%m/%Y.
dataImport <- read.csv("data.csv", colClasses = c("factor","factor","Date"))
Run Code Online (Sandbox Code Playgroud)
这会导致转换错误.例如,15/07/2008成为0015-07-20.
data <-
structure(list(func_loc = structure(c(1L, 2L, 3L, 3L, 3L, 3L,
3L, 4L, 4L, 5L), .Label = c("3076WAG0003", "3076WAG0004", "3076WAG0007",
"3076WAG0009", "3076WAG0010"), class = "factor"), order_type = structure(c(3L,
3L, 1L, 1L, 1L, 1L, 2L, 2L, 3L, 1L), .Label = c("PM01", "PM02",
"PM03"), class = "factor"), actual_finish = structure(c(4L, 6L,
1L, 2L, 3L, 7L, 1L, 8L, 1L, 5L), .Label = c("", "11/03/2008",
"14/08/2008", …Run Code Online (Sandbox Code Playgroud) 我试图在反应数据框中添加非线性回归模型和多变量分析的优势.我设法创建了反应数据帧,在我过滤数据时随时更新.我现在想要在过滤数据帧时更新模型输出,并将模型的预测值添加到反应数据帧.下面是我正在使用的数据集的子集以及我用来创建闪亮App的ui和服务器文件.
加载包
library (shiny)
library(ggvis)
library(dplyr)
library(rbokeh)
library (minpack.lm)
library (hydroGOF)
library(caret)
Run Code Online (Sandbox Code Playgroud)
我使用的数据帧:
Flux_Data_df<- structure(list(Site_ID = structure(c(1L, 3L, 5L, 7L, 8L), .Label = c("AR-Slu",
"AR-Vir", "AU-Tum", "AU-Wac", "BE-Bra", "BE-Jal", "BE-Vie", "BR-Cax",
"BR-Ma2", "BR-Sa1", "BR-Sa3", "BW-Ma1", "CA-Ca1", "CA-Ca2", "CA-Ca3",
"CA-Gro", "Ca-Man", "CA-NS1", "CA-NS2", "CA-NS3", "CA-NS4", "CA-NS5",
"CA-NS6", "CA-NS7", "CA-Oas", "CA-Obs", "CA-Ojp", "CA-Qcu", "CA-Qfo",
"CA-SF1", "CA-SF2", "CA-SF3", "CA-SJ1", "CA-SJ2", "CA-SJ3", "CA-TP1",
"CA-TP2", "CA-TP3", "CA-TP4", "CA-Wp1", "CN-Bed", "CN-Cha", "CN-Din",
"CN-Ku1", "CN-Qia", "CZ-Bk1", "De-Bay", "DE-Hai", "DE-Har", "DE-Lkb",
"DE-Meh", "DE-Obe", "DE-Tha", "DE-Wet", "DK-Sor", "ES-Es1", "FI-Hyy", …Run Code Online (Sandbox Code Playgroud) 我构建了一个闪亮的应用程序,它采用用户上传的CSV文件并添加标题和几个新列,以便之后进行一些计算.
上传的CSV文件包含2列,如下所示:
1 0.21
1 0.20
1 0.23
2 0.40
2 0.42
2 ...
Run Code Online (Sandbox Code Playgroud)
要上传文件我使用此代码(正在运行):
data1<- reactive({
inFile <- input$file1
if(is.null(inFile)){return()}
data1<- read.csv(file=inFile$datapath,header =input$header,sep=input$sep)
})
Run Code Online (Sandbox Code Playgroud)
下一步是将标题添加到这两列,并以这种方式添加另外两列:
Dose Response SquareRoot Log
1 0.21 sq(Response) log(Response)
1 0.20 ... ...
1 0.23 ... ...
2 0.40 ... ...
2 0.42 ... ...
2 ...
Run Code Online (Sandbox Code Playgroud)
在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)
Run Code Online (Sandbox Code Playgroud)
如果我这样做有光泽地将这些行添加到我的Rshiny应用程序中它将无法工作并给我错误:
错误:长度为0的参数,即使我只是使用定义列名称colnames().
所以我的问题是,有没有办法编辑我刚上传的数据帧?我已经问过这个问题你能不能重定向我,因为我找不到解决方案.我希望我能给你足够的细节来理解这个问题.