여러 열이있는 데이터 프레임이 있는데 그 중 일부는 chron
을 사용하여 '시간'클래스로 변경해야 검색 할 수 있습니다. 기본 통계. 이 열은 현재 문자로 저장되며 다음과 같이 서식이 지정됩니다. hh : mm.chron을 사용하여 '문자'클래스에서 '시간'클래스로 데이터 프레임의 여러 열 변경
> Data
DATE FLT TYPE REG AC DEP ARR STD STA ATD ATA
1 15-01-02 953 J C-GCPT 73M YVQ YEV 12:00 12:55 13:00 13:59
2 15-01-04 953 J C-GCPT 73M YVQ YEV 12:00 12:55 13:17 14:13
3 15-01-05 953 J C-GCPT 73M YVQ YEV 12:00 12:55 13:20 14:14
Time_list <-c("STD","STA","ATD","ATA")
나는 단지 하나의 컬럼을 변경 한 일이다 (그리고 그것은 작동) : 여기
그것의 일부뿐만 아니라 변경해야 열 목록입니다Data$ATA <- paste0(Data$ATA, ':00')
Data$ATA<-chron(times.=Data$ATA)
class(Data$ATA)
[1] "times"
그러나 많은 컬럼이 있기 때문에 모든 컬럼을 동시에 수행하는 것을 선호합니다. 나는 여러 가지 기법을 시도했으며 일부는 '00 : 00 '을 붙여 넣는 첫 번째 부분에서는 작동하지만 두 번째 부분에서는 항상 chron
을 사용하여 잘못 처리됩니다. 나는 for
루프
apply
YEVdata[,(Time_list)] <- lapply(YEVdata[,(Time_list)], paste0,':00')
Data[,(Time_list)] <- lapply(Data[,(Time_list)], chron, times. =Data[,(Time_list)])
**Error in FUN(X[[i]], ...) :
X[[i]] and Data[, (Time_list)] must have equal lengths**
를 사용 dmap
Data[,Time_list]<-
Data%>%
select(one_of(Time_list)) %>%
dmap(paste0,':00')
Data[,Time_list]<-
Data %>%
select(one_of(Time_list)) %>%
dmap(chron,times.=Data[,Time_list])
**Error in .f(.d[[i]], ...) :
.d[[i]] and Data[, Time_list] must have equal lengths**
를 사용하여 내가
을 이해하지 못하는 길이 문제를 갖고있는 것 같다
for 루프를 사용해 보았습니다.하지만 초보자 일 뿐이므로 어디든지 갈 수 있습니다.
- 다른 스택 오버플로 질문에서 "간단한"솔루션을 사용하십시오.
그냥 붙여 넣기조차했습니다.
Efficiently transform multiple columns of a data frame
일반 초보자의 언어로 모든 아이디어를 매우 극명하게 될 것이다! 두 작업을 모두 중첩 할 수 있다면 더 좋습니다!
기본적인 이전'lapply' 그것을해야 - '데이터 [Time_list] <- lapply (데이터 [Time_list, 함수 (x)는 시간 (paste0 (데이터 $ ATA, "00")))' – thelatemail
기본적으로 Josh의 링크 된 질문의 대답과 동일합니다. - http://stackoverflow.com/a/17453493/496803 -'lapply (...' – thelatemail
@thelatemail을 시작한 행, 나는 그것을 시도했지만 여전히 오류가납니다. 데이터에 오류가 있습니다. $ ATA : objet de type 'closure'not indiable. – lcabral