charToDate(x)中出错:字符串不是标准的明确格式

charToDate(x)中出错:字符串不是标准的明确格式,r,rstudio,R,Rstudio,我写作是因为我没有其他地方可以得到答案。我正试图缩小我现有的桌子一点。其形式如下: Živilec; Proizvodnja; Kariera d.o.o.; 18.11.2014 hh.mm.ss; Ljubljana Živilec; Prehrambena industrija; Kariera d.o.o.; 18.11.2014 hh.mm.ss; Ljubljana Vodja; Strojništvo;

我写作是因为我没有其他地方可以得到答案。我正试图缩小我现有的桌子一点。其形式如下:

Živilec;     Proizvodnja;            Kariera d.o.o.;  18.11.2014 hh.mm.ss;  Ljubljana
Živilec;     Prehrambena industrija; Kariera d.o.o.;  18.11.2014 hh.mm.ss;  Ljubljana
Vodja;       Strojništvo;            Adecco;          18.11.2014 hh.mm.ss;  Maribor
Vodja;       Tehnične storitve;      Adecco;          18.11.2014 hh.mm.ss;  Maribor
Vodja;       Elektrotehnika;         Adecco;          18.11.2014 hh.mm.ss;  Celje
,实际插入的日期为2014年11月18日8:35:59,但我不需要时间,只需要日期。 我想说的是:

Živilec;  Proizvodnja,Preh. industrija; Kariera d.o.o.; 18.11.2014;          Ljubljana
Vodja;    Stroj.,Teh. stor., Elektro.;  Adecco;         18.11.2014;          Maribor, Celje
我试着借助这个R代码来实现这一点:

matrik<-matrix(0,600,30)
for (i in 1:dim(a)[1]){
  if (is.element(a[i,3],matrik[,15])==TRUE & is.element(a[i,1],matrik[,1])==TRUE){
    katero<-which(a[i,1]==matrik[,1])
    kdo<-which(a[i,15]==matrik[,15])
    kje<-min(intersect(kdo,katero))
    if (kje!=0){
      prosto<-min(which(matrik[kje,2:14]==0))
      matrik[kje,prosto]<-as.character(a[i,2])
      prosti<-min(which(matrik[kje,17:30]==0))
      matrik[kje,prosti]<-as.character(a[i,5])
    }
    if (kje==0){
      povrsti<-min(which(matrik[,1]==0))
      matrik[povrsti,1]<-as.character(a[i,1])
      prosto<-min(which(matrik[povrsti,2:14]==0))+1
      matrik[povrsti,prosto]<-as.character(a[i,2])
      matrik[povrsti,15]<-as.character(a[i,3])
      matrik[povrsti,16]<-as.character(a[i,4])
      prosti<-min(which(matrik[povrsti,17:30]==0))+1
      matrik[povrsti,prosti]<-as.character(a[i,5])      
    }
  }
  else {
    povrsti<-min(which(matrik[,1]==0))
    matrik[povrsti,1]<-as.character(a[i,1])
    prosto<-min(which(matrik[povrsti,2:14]==0))+1
    matrik[povrsti,prosto]<-as.character(a[i,2])
    matrik[povrsti,15]<-as.character(a[i,3])
    matrik[povrsti,16]<-as.character(a[i,4])
    prosti<-min(which(matrik[povrsti,17:30]==0))+16
    matrik[povrsti,prosti]<-as.character(a[i,5])  
  }

}
怎么办?有什么解决办法吗


谢谢你抽出时间

要解析日期,您可以按如下方式进行:

library(lubridate)

x <- c("18.11.2014 8:35:59")
as.Date(dmy_hms(x))
人们很快就会给你指路

更新

以下是一个解决方案:

加载一些有用的库

library(stringr)
library(dplyr)
你的数据

toy_data <-
structure(list(V1 = structure(c(2L, 2L, 1L, 1L, 1L), .Label = c("Vodja", 
"Živilec"), class = "factor"), V2 = structure(c(5L, 4L, 2L, 3L, 
1L), .Label = c("       Elektrotehnika", "       Strojništvo", 
"       Tehnične storitve", "     Prehrambena industrija", "     Proizvodnja"
), class = "factor"), V3 = structure(c(2L, 5L, 1L, 4L, 3L), .Label = c("            Adecco", 
"            Kariera d.o.o.", "         Adecco", "      Adecco", 
" Kariera d.o.o."), class = "factor"), V4 = structure(c(2L, 2L, 
1L, 1L, 1L), .Label = c("          18.11.2014", "  18.11.2014"
), class = "factor"), V5 = structure(c(2L, 2L, 3L, 3L, 1L), .Label = c("  Celje", 
"  Ljubljana", "  Maribor"), class = "factor")), .Names = c("V1", 
"V2", "V3", "V4", "V5"), class = "data.frame", row.names = c(NA, 
-5L))

您的预期结果对于数据分析来说是一种非常糟糕的格式,并且您的代码过于复杂且不可读,因为您的空格键似乎不起作用。无论如何,我找不到您在代码中转换日期时间的位置,但是您应该使用类似于
as.Date(as.POSIXct(,format=“%d.%m.%Y%H:%m:%S”,tz=)
)。
library(stringr)
library(dplyr)
toy_data <-
structure(list(V1 = structure(c(2L, 2L, 1L, 1L, 1L), .Label = c("Vodja", 
"Živilec"), class = "factor"), V2 = structure(c(5L, 4L, 2L, 3L, 
1L), .Label = c("       Elektrotehnika", "       Strojništvo", 
"       Tehnične storitve", "     Prehrambena industrija", "     Proizvodnja"
), class = "factor"), V3 = structure(c(2L, 5L, 1L, 4L, 3L), .Label = c("            Adecco", 
"            Kariera d.o.o.", "         Adecco", "      Adecco", 
" Kariera d.o.o."), class = "factor"), V4 = structure(c(2L, 2L, 
1L, 1L, 1L), .Label = c("          18.11.2014", "  18.11.2014"
), class = "factor"), V5 = structure(c(2L, 2L, 3L, 3L, 1L), .Label = c("  Celje", 
"  Ljubljana", "  Maribor"), class = "factor")), .Names = c("V1", 
"V2", "V3", "V4", "V5"), class = "data.frame", row.names = c(NA, 
-5L))
my_str_c <- function(x){str_c(unique(x), collapse = ";")}
toy_data %>%
  mutate_each(funs(str_trim)) %>%
  group_by(V1) %>%
  summarise_each(funs(my_str_c))