Data.table: κ·Έλ£Ήν™”ν•˜μ§€ μ•Šμ„ λ•Œ Symbol .I 일관성

에 λ§Œλ“  2018λ…„ 01μ›” 30일  Β·  5μ½”λ©˜νŠΈ  Β·  좜처: Rdatatable/data.table

이것은 λ‚΄κ°€ ν™•μ‹ ν•˜κΈ° 전에 μ™”μ§€λ§Œ 문제 λ˜λŠ” SO κ²Œμ‹œλ¬Όμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€. λˆ„κ΅¬λ“ μ§€ κΈ°μ–΅ν•˜κ±°λ‚˜ 링크가 μžˆμŠ΅λ‹ˆκΉŒ? " .I λŠ” λ¬Έμ„œμ— 따라 그룹화에 μ‚¬μš©ν•˜κΈ°μœ„ν•œ κ²ƒμ΄μ§€λ§Œ λΉ„ κ·Έλ£Ήν™”λ‘œ ν™•μž₯ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€."와 같이 λˆ„κ΅°κ°€μ—κ²Œ λ‹΅μž₯ ν•œ 것을 κΈ°μ–΅ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. man νŽ˜μ΄μ§€ μ—λŠ” .I λŒ€ν•œ "while grouping"μ΄λΌλŠ” 단어가 μ—¬μ „νžˆ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

v1.10.4-3 및 dev λͺ¨λ‘μ˜ ν˜„μž¬ λ™μž‘ :

> X = data.table(c("a","a","b","c","c"), 10:14)
> setkey(X,V1)
>  X["b"]
   V1 V2
1:  b 12       # ok
> X["b", .I]
[1] 1          # expected x's row number 3  (*1)
> X["b", .I, by=.EACHI]
   V1 I
1:  b 3        # ok
> X["b", .(.I,V2)]
   I V2
1: 1 12      # expected x's row number 3 not 1  (*2)
> X["b", .(.I,V2), by=.EACHI]
   V1 I V2
1:  b 3 12     # ok
> 

이제 which=TRUE κ°€ μ˜λ„λ˜μ—ˆμœΌλ©° 첫 번째 경우 (* 1)μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

> X["b", which=TRUE]
[1] 3

κ·ΈλŸ¬λ‚˜ x의 ν–‰ 번호λ₯Ό λ¨Όμ € μ—΄λ‘œ λͺ…μ‹œ 적으둜 μΆ”κ°€ν•˜μ§€ μ•ŠλŠ” ν•œ j ( 2) μ•ˆμ— x의 ν–‰ 번호λ₯Ό ν¬ν•¨ν•˜λŠ” κ·Έκ²ƒμ€μ„μœ„ν•œ 쒋은 κ²ƒμž…λ‹ˆλ‹€ .I κ°€ 무엇을해야 ν•˜λŠ”μ§€λ₯Ό which=TRUE κ°„λ‹¨ν•œ 경우 (1)μ—μ„œμ™€ μ–΄μ©Œλ©΄ 천천히 더 이상 μ‚¬μš© which=TRUE λ‚΄ 생각 μ—” μ‚¬λžŒλ“€μ΄ λ„λ‹¬ν•˜κΈ° λ•Œλ¬Έμ— 인수λ₯Ό .I λ¨Όμ €

bug consistency

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이 아이디어에 전체 μŠ€λ ˆλ“œκ°€ μžˆλ‹€λŠ” 것을 λͺ°λžμŠ΅λ‹ˆλ‹€. 이것은 이것이 쒋은 μƒκ°μ΄λΌλŠ” 것을 μ˜λ―Έν•©λ‹ˆκΉŒ?

λͺ¨λ“  5 λŒ“κΈ€

λˆ„κ΅¬λ“ μ§€ κΈ°μ–΅ν•˜κ±°λ‚˜ 링크가 μžˆμŠ΅λ‹ˆκΉŒ?

.Iλ₯Ό κΈ€λ‘œλ²Œμ— μ‚¬μš©ν•  수 μžˆμœΌλ―€λ‘œ κ·Έλ£Ήν™”ν•˜μ§€ μ•Šκ³  ν–‰ 번호λ₯Ό μ‚¬μš©ν•  수 있고 .iλ₯Ό λ‘œμ»¬μ— μ‚¬μš©ν•  수 μžˆμœΌλ―€λ‘œ κ·Έλ£Ήν™” λ‚΄λΆ€μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

Frankκ°€ μ–ΈκΈ‰ ν•œ @dracodoc 은 # 1206μž…λ‹ˆλ‹€.

이 아이디어에 전체 μŠ€λ ˆλ“œκ°€ μžˆλ‹€λŠ” 것을 λͺ°λžμŠ΅λ‹ˆλ‹€. 이것은 이것이 쒋은 μƒκ°μ΄λΌλŠ” 것을 μ˜λ―Έν•©λ‹ˆκΉŒ?

https://github.com/Rdatatable/data.table/issues/539의 예

dt <- data.table(a=sample(letters, 100, T), b=rnorm(100))
dt[ a=="c", list(.N, .I)]
   N .I
1: 4  1
2: 4  2
3: 4  3
4: 4  4

dt[a=="c", list(.N, .I), by=a]
   a N .I
1: c 4 54
2: c 4 67
3: c 4 71
4: c 4 86
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰