2
에 data.table의 값으로 빈 목록을 추가는 다음과 같이, 내가 R에 data.table이 R
DT <- data.table(c1 = 1:3,
c2 = as.list(c("bob",NA,"mary")),
c3 = as.list(c(NA,"joe",NA)))
내가 싶습니다 나중에 열 C2와 C3을 연결하기 때문에 사용, 빈리스트로 NA 값을 대체 :
DT[, combined := list(list(unlist(union(c2,c3)))), by=c1]
나에게
DT$combined
[[1]] bob,NA
[[2]] NA,joe
[[3]] mary,NA
을 제공하는 어떻게 우아한 방법으로 작업을 수행하는 내 질문은 어디에서 오는 대신 원하는
DT$combined
[[1]] bob
[[2]] joe
[[3]] mary
의 난 여기 NAS가 목록을 비워 변환하여 원하는 결과를 얻을 수 있습니다?
는내가 데이터 프레임 구문을 사용하여 NAS의 제거 할 수 :
DT$c2[is.na(DT$c2)] <- list(list())
을하지만, 나는 데이터 테이블을 사용하고 있기 때문에, 그들은보다 나은해야한다, 나는
같은 것을하고 싶어Error in set(DT, DT[, .I[is.na(c2)]], "c2", value = list(list())) :
RHS of assignment to existing column 'c2' is zero length but not NULL.
If you intend to delete the column use NULL. Otherwise, the RHS must have length > 0;
e.g., NA_integer_. If you are trying to change the column type to be an empty list column then,
as with all column type changes, provide a full length RHS vector such as
vector('list',nrow(DT)); i.e., 'plonk' in the new column.
난 그냥 더 나은 방법을 찾고 있어요 : R은 다음과 같은 오류를 뱉어되는
set(DT, DT[,.I[is.na(c2)]], "c2", value= list(list()))
data.tables를 사용합니다.
당신이'c2'와'목록 수 c3'을 하시겠습니까? 당신의 예제에서는 당신은 단지 그들 안에 단일 값을 유지하는 것처럼 보입니다. – eddi
예, 응용 프로그램 코드를 게시하지 않았습니다. 응용 프로그램 코드가 훨씬 복잡하기 때문에 여러 값을 가진 특성 목록입니다. – squishbug