2013-10-14 2 views
1

는이 같은 마이크로 블로그에 대한 데이터 세트가 있습니다r에 data.table 설정 키 열 길이 오류

uid mid annotations bmiddle_pic created_at favorited geo in_reply_to_screen_name in_reply_to_status_id in_reply_to_user_id original_pic reTweetId reUserId source thumbnail_pic truncated dateTime year month date 
2025135630 3431909076450860   Fri Apr 06 20:12:27 +0800 2012 FALSE None NA NA NA  3.42867E+15 1292317643 <a href=http://localhost/web/cellphone.php#android rel=nofollow>Android???</a>  FALSE 6/4/12 20:12 2012 4 6 
1707427294 3439478742005300   Fri Apr 27 17:31:36 +0800 2012 FALSE None NA NA NA  3.43689E+15 1717022775 <a href=http://localhost/proc/productintro.php rel=nofollow>???????</a>  FALSE 27/4/12 17:31 2012 4 27 
1707427294 3449202430032250   Thu May 24 13:30:06 +0800 2012 FALSE None NA NA NA  3.44822E+15 1717022775 <a href=http://localhost/proc/productintro.php rel=nofollow>???????</a>  FALSE 24/5/12 13:30 2012 5 24 
1444865141 3432162475292600   Sat Apr 07 12:59:23 +0800 2012 FALSE None NA NA NA  3.43215E+15 1406200033 <a href=http://localhost/web/cellphone.php#iphone rel=nofollow>iPhone???</a>  FALSE 7/4/12 12:59 2012 4 7 
1444865141 3451309551846890   Wed May 30 09:03:02 +0800 2012 FALSE None NA NA NA  3.45109E+15 1406200033 <a href=http://localhostrel=nofollow>????</a>  FALSE 30/5/12 9:03 2012 5 30 
1422308692 3449219618915960 [{'name': u'\u827a\u672f\u4e0e\u751f\u6d3b\u7684\u5e73\u884c\u5bf9\u8bdd', 'title': u'\u827a\u672f\u4e0e\u751f\u6d3b\u7684\u5e73\u884c\u5bf9...', 'url': u'http://localhost/ft/201205215587', 'detailid': u'201205215587', 'appid': 47, 'id': u''}]  Thu May 24 14:38:21 +0800 2012 FALSE None NA NA NA  3.44922E+15 1438620052 <a href=http://localhost rel=nofollow>???</a>  FALSE 24/5/12 14:38 2012 5 24 

을하고 나는 data.table으로 바꿀하지만 키 설정할 수 없습니다 :

DT <- data.table(df) 
keycols = c("reUserId", "year","month") 
setkeyv(DT, keycols) 

은 말한다 :

Error in setkeyv(eihun.im60k, keycols) : 
Column 17 is length 9 which differs from length of column 1 (143). Invalid data.table. Check NEWS link at top of ?data.table for latest bug fixes. If not already reported and fixed, please report to datatable-help. 

나는 매트 Dowle가 `data.table` error: "reorder received irregular lengthed list" in setkey을 제안 저자로 테스트를 시도하는 동안 :

sapply(DT, length) 

그리고 그것은 반환 : 모든 열은 왜 여전히 열 (17)의 길이는 9 말합니다이 오류를 얻고, (143)의 길이가

   uid      mid    annotations    bmiddle_pic 
       143      143      143      143 
     created_at    favorited      geo in_reply_to_screen_name 
       143      143      143      143 
in_reply_to_status_id  in_reply_to_user_id   original_pic    reTweetId 
       143      143      143      143 
      reUserId     source   thumbnail_pic    truncated 
       143      143      143      143 
      dateTime     year     month     date 
       143      143      143      143 

그렇다면? 미리 감사드립니다!

P.

dput(head(df)) 

하고

structure(list(uid.mid.annotations.bmiddle_pic.created_at.favorited.geo.in_reply_to_screen_name.in_reply_to_status_id.in_reply_to_user_id.original_pic.reTweetId.reUserId.source.thumbnail_pic.truncated.dateTime.year.month = structure(c(2L, 
3L, 4L, 5L, 6L, 1L), .Label = c("105411 1422308692 3449219618915963 Thu May 24 14:38:21 +0800 2012 False None NA NA NA 3449215332521999 1438620052 <a href=http://localhost rel=nofollow>\345\276\256\350\256\277\350\260\210</a> False 2012-05-24 14:38:21 2012 5", 
"22527 2025135630 3431909076450865 Fri Apr 06 20:12:27 +0800 2012 False None NA NA NA 3428667298503554 1292317643 <a href=http://localhost/web/cellphone.php#android rel=nofollow>Android\345\256\242\346\210\267\347\253\257</a> False 2012-04-06 20:12:27 2012 4", 
"90933 1707427294 3439478742005300 Fri Apr 27 17:31:36 +0800 2012 False None NA NA NA 3436888868360479 1717022775 <a href=http://localhost/proc/productintro.php rel=nofollow>\346\226\260\346\265\252\345\276\256\345\215\232\344\274\201\344\270\232\347\211\210</a> False 2012-04-27 17:31:36 2012 4", 
"91994 1707427294 3449202430032258 Thu May 24 13:30:06 +0800 2012 False None NA NA NA 3448224780547857 1717022775 <a href=http://localhost/proc/productintro.php rel=nofollow>\346\226\260\346\265\252\345\276\256\345\215\232\344\274\201\344\270\232\347\211\210</a> False 2012-05-24 13:30:06 2012 5", 
"93408 1444865141 3432162475292602 Sat Apr 07 12:59:23 +0800 2012 False None NA NA NA 3432146591339391 1406200033 <a href=http://localhost/web/cellphone.php#iphone rel=nofollow>iPhone\345\256\242\346\210\267\347\253\257</a> False 2012-04-07 12:59:23 2012 4", 
"93772 1444865141 3451309551846895 Wed May 30 09:03:02 +0800 2012 False None NA NA NA 3451094757864706 1406200033 <a href=http://localhost rel=nofollow>\346\226\260\346\265\252\345\276\256\345\215\232</a> False 2012-05-30 09:03:02 2012 5" 
), class = "factor")), .Names = "uid.mid.annotations.bmiddle_pic.created_at.favorited.geo.in_reply_to_screen_name.in_reply_to_status_id.in_reply_to_user_id.original_pic.reTweetId.reUserId.source.thumbnail_pic.truncated.dateTime.year.month", row.names = c(NA, 
6L), class = "data.frame") 
+0

샘플을 보내 주시면 data.frame ...에 이상하게 보입니다. dput (head (df))의 출력을 게시하십시오. – Roland

+0

고마워, @ 롤랜드! 비록 내가 여기에 더 좋은 형식을 보지 못했지만. – leoce

+0

(str (df)를 사용하여 확인할 수있는 것처럼) data.frame에는 정확히 하나의 열 (변수)이 있습니다. 아마도 이것은 예상 한 것과 다를 수 있습니다. 데이터를 가져 오는 방법을 변경해야합니다. – Roland

답변

2

패키지 'data.table'를 반환하는 유효한 테이블의 일환으로 POSIXlt의 변수를 취할 수 없습니다. data.table (mydf) 전에 변환하십시오.

+0

이것은'? data.table'에 기록되어 있습니다 : * POSIXlt는 40 바이트를 사용하여 하나의 datetime을 저장하기 때문에 열 유형으로 지원되지 않습니다. POSIXlt 유형의 컬럼을 작성하는 경우 예기치 않은 오류가 발생할 수 있습니다. 1.6.3, IDateTime 대신 NEWS를 참조하십시오. IDateTime에는 POSIXlt *로 변환하는 메소드가 있습니다. – eddi