2014-01-05 3 views
1

일부 조건 확인을 수행하고 "Date"개체를 출력하는 기능이 있습니다. "s"의 클래스는 "날짜"입니다. 그러나 "mapply"의 출력은 숫자 벡터입니다. 출력 "dataF1 $ RECENCY"도 Date 객체로 지정합니다. 이 도움이 필요하십니까mapply의 날짜 출력 형식이 적합하지 않습니다.

dataF1 = read.csv("C:\\Users\\DATA.csv", header = TRUE, sep = ",") 
dataF1$DT = as.Date(dataF1$DT, format = "%d-%b-%y") 

myFunction <- function(x, y, z){ 
    if (x == "U"){ 
     s = z + 60 
    } 
    else { 
     if (y == "ANNUAL"){ 
      s = z + 30 
     } 
     else { 
      s = z + 15 
     } 
    } 
    print (s) 
    print (class(s)) 
    return(s) 
} 

dataF1$RECENCY = mapply(myFunction, x = dataF1$TYPE, y = dataF1$PAYMENT, z = dataF1$DT) 

> head(dataF1$RECENCY) 
[1] 13966 14340 14467 13752 13721 13752 

답변

2

mapply는 결과를 간소화하지 마십시오.

> mapply(function(x) {as.Date(x, format = "%m.%d.%Y")}, x = "1.5.2014", SIMPLIFY = FALSE) 
$`1.5.2014` 
[1] "2014-01-05" 

> mapply(function(x) {as.Date(x, format = "%m.%d.%Y")}, x = "1.5.2014", SIMPLIFY = TRUE) 
1.5.2014 
    16075 

do.call을 사용하여 나만의 벡터를 만들 수 있습니다.

out <- mapply(function(x) {as.Date(x, format = "%m.%d.%Y")}, x = c("1.5.2014", "2.5.2014"), SIMPLIFY = FALSE) 
do.call("c", out) 
    1.5.2014  2.5.2014 
"2014-01-05" "2014-02-05" 
+0

'지도'도 사용할 수 있습니다. – agstudy

관련 문제