# 4196์์ :
๋ชฉ๋ก ์ด์ ์ฑ์ธ ๋ rbindlist๋ ๋ค๋ฅธ ๋ชจ๋ ์ด ์ ํ์ ๋์์์ ๋ฒ์ด๋ NA ๋์ NULL ์์๋ฅผ ๋ฐํํฉ๋๋ค.
> A = data.table(c1=0, c2=list(1:3))
> B = data.table(c1=1)
> rbind(A,B,fill=TRUE)
c1 c2
<num> <list>
1: 0 1,2,3
2: 1
์์ :
> A = data.table(c1=0, c2=list(1:3))
> B = data.table(c1=1)
> rbind(A,B,fill=TRUE)
c1 c2
<num> <list>
1: 0 1,2,3
2: 1 NA
๋ค๋ฅธ ์ด ์ ํ์ ๋ํ fill = TRUE์ ๋์๊ณผ ์ผ์นํ๋๋ก NA ๊ฐ์ผ๋ก ํ์ ์ฑ์ฐ๋๋ก ๋ชฉ๋ก ์ด์์ด ๋์์ ๋ณ๊ฒฝํด์ผํฉ๋๊น?
๋ณ๊ฒฝํ๋ ค๋ ๊ฒฝ์ฐ ์์ ์ฌํญ์ด ์ ๊ณต๋ PR
ํ์ฌ์ ํ๋์ ๋์๊ฒ ๊ด์ฐฎ์ ๋ณด์ธ๋ค.
> str(as.integer(NULL)[1L])
int NA
> str(as.list(NULL)[1L])
List of 1
$ : NULL
IMO๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก NA๊ฐ ์๋์ด์ผํฉ๋๋ค.
๋๋ Jan์ ์์ ์ ๊ธฐ๋๊ณ ์์ต๋๋ค. ๋น ์์์ ํ์ฌ ๋์์ ์ค์ ๋ก ๋๋ฝ์ ๋ํ๋ด๋ ๋ชฉ๋ก์ ๋ฐฉ๋ฒ์ ๋๋ค (๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด๊ฐ ์์). ๋ชฉ๋ก์ ๊ฐ ํญ๋ชฉ์ด ๋ ผ๋ฆฌ ๋ฒกํฐ์ด๊ณ ๊ฐ ํญ๋ชฉ์ด ๊ณ์ฐ์ ๊ฒฐ๊ณผ ์ธ ์์ ๋ฅผ ๊ตฌ์ฑ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ธธ์ด 0 ๋ ผ๋ฆฌ์ , ๊ธธ์ด 1 NA ๋ ผ๋ฆฌ์ , ๊ณ์ฐ ๋๋ฝ์ ์ธ ๊ฐ์ง ์ํ๋ฅผ ํ์ํด์ผ ํ ์ ์์ต๋๋ค. ๊ธธ์ด 1 NA ๋ ผ๋ฆฌ๊ฐ ๋๋ฝ์ ์ฌ์ฉ ๋ ๊ฒฝ์ฐ ํด๋น 2๋ฅผ ๊ตฌ๋ณ ํ ์ ์์ต๋๋ค.
์ธ์ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๊น? ์๋ฌด๊ฒ๋ ์ธ์๋์ง ์๋ ๋์ NULL
์ด๋ป์ต๋๊น? NA
์ธ์๋ ๋ค์ ๊ธธ์ด 1 NA ๋
ผ๋ฆฌ์ ์ ์๋ฏธ ํ ์์๋ ๋ฐ๋ฉด NULL
๋ ๊ธฐ๋ณธ R์ด ๋น ๋ชฉ๋ก ํญ๋ชฉ์ ๋ํด ์ธ์ํ๋ ๊ฒ๊ณผ ์ผ์นํ๋ฉฐ ์ด๊ฒ์ด ๋ชฉ๋ก์ด๋ผ๋ ์๊ฐ์ ์๋ฆผ์ ์ถ๊ฐ๋ก ์ ๊ณตํ๋ ๋ชจํธํ์ง ์์ต๋๋ค. ๊ธฐ๋ฅ.
๋ํ w Jan, ํนํ ๊ธธ์ด 0-> ๊ธธ์ด 1์ ๋ํด ๋์ํฉ๋๋ค.
๋น ๋ชฉ๋ก ์ด๋ก ํ์ ํํฐ๋งํ๊ธฐ ์ํด lengths (x)> 0์ ๋ง์ด ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋์ ์ logical ()์ ๋ฃ์ ์ ์๋ค๊ณ ์๊ฐํ ์ ์์ง๋ง, NULL๋ณด๋ค logical ()์ ์ด์ ์ด ์์ต๋๊น?
๋ชฉ๋ก ์ด์ด ๋๋ฝ ๋ ๊ฒฝ์ฐ ๋์์ ๊ธฐ๋กํ๋ ๋ฌธ์ฅ์ ๋ฌธ์์ ์ถ๊ฐํ๋ฉด ์ด๋จ๊น์?
์ฑ์ฐ๊ธฐ ์ธ์์ ํ์ฌ ํญ๋ชฉ :
TRUE๋ ๋๋ฝ ๋ ์ด์ NA๋ก ์ฑ ์๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก FALSE์ ๋๋ค. TRUE์ด๋ฉด use.names๊ฐ TRUE๋ก ์ค์ ๋ฉ๋๋ค.
์ ์ :
TRUE๋ ๋๋ฝ ๋ ์ด์ NA๋ก ์ฑ์ฐ๊ฑฐ๋ ๋๋ฝ ๋ ๋ชฉ๋ก ์ด์ ๊ฒฝ์ฐ NULL์ ์ฑ ์๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก FALSE์ ๋๋ค. TRUE์ด๋ฉด use.names๊ฐ TRUE๋ก ์ค์ ๋ฉ๋๋ค.
๋ฌธ์ ๋ณ๊ฒฝ์ด ์ข์ ๋ณด์ ๋๋ค. ๊ฒ๋ค๊ฐ ๋ด๊ฐ ์ ์ํ ์ธ์ ๋ฐฉ๋ฒ ๋ณ๊ฒฝ๋?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ชฉ๋ก ์ด์ด ๋๋ฝ ๋ ๊ฒฝ์ฐ ๋์์ ๊ธฐ๋กํ๋ ๋ฌธ์ฅ์ ๋ฌธ์์ ์ถ๊ฐํ๋ฉด ์ด๋จ๊น์?
์ฑ์ฐ๊ธฐ ์ธ์์ ํ์ฌ ํญ๋ชฉ :
์ ์ :