【发布时间】:2015-01-27 05:48:42
【问题描述】:
我写作是因为我无处可去寻找答案。我正在尝试缩小我现有的表格。它的形式如下:
Ž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
,日期实际上插入为 18.11.2014 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])
}
}
基本上我会创建一个新矩阵来存储值,因为我无法存储像 teh 这样的类别。 storitve、strojništvo、elektro 在一个单元格中,而在同一列的另一个单元格中只有 2 个值 我决定查看所有类别的最大值并制作那么多单元格。如果这个问题可以解决,如果可以的话,请告诉我。所以无论如何在制作一个零矩阵之后,我检查第一个元素(所以“Živilec”)和第三个元素(所以“Kariera doo”)是否相同,如果这是真的,我只想将值添加到第二个和第五个(最后)列。如果没有,我发现我必须在现有矩阵中添加一个新行,其中包含表中的所有值。当我运行此代码时,我收到错误:
Error in charToDate(x) :
character string is not in a standard unambiguous format
怎么办?有什么解决办法吗?
感谢您的宝贵时间。
【问题讨论】:
-
您的预期结果是一种非常糟糕的数据分析格式,并且您的代码太复杂且难以阅读,因为您的空格键似乎不起作用。无论如何,我找不到您在代码中转换日期时间的位置,但您应该使用类似
as.Date(as.POSIXct(<your datetimes>, format = "%d.%m.%Y %H:%M:%S", tz = <yourtimezone>))的东西。