Падение уровней фактора, когда droplevels () не работает в R - PullRequest
0 голосов
/ 08 июня 2019

После подстановки переменной t (которая является вектором NULL s) из моего data.frame D, я получаю объект класса-фактора.

Я использую droplevels для удаленияуровни и получить вектор NULL s, мне было интересно, почему я до сих пор не могу получить вектор NULL s?

D <- read.csv("https://raw.githubusercontent.com/izeh/i/master/m.csv", h = T)

L <- split(D, D$study.name) ; L[[1]] <- NULL

t <- lapply(1:length(L), function(i) L[[i]]$t)

droplevels(t[[1]]) ## keep the vector of `NULL`s but drop the levels

## EXPECTED OUTPUT:
[[1]]
[1] NULL NULL NULL NULL NULL NULL

1 Ответ

1 голос
/ 08 июня 2019

В R объекты NULL - это такие же особенности, как NA.Этот пост является действительно хорошим объяснением:

повторение нескольких NULL в R

Создать пустой вектор с объектом значения NULL сложно, потому что это длина 0объект, может быть, вы могли бы использовать NA или другое решение:

D <- read.csv("https://raw.githubusercontent.com/izeh/i/master/m.csv", h = T)
L <- split(D, D$study.name)
L[[1]] <- NULL # NULL is 0 length, you cancel the first element of your list.

t <- lapply(1:length(L), function(i) L[[i]]$t) # Your try

# 2 solutions :
t <- lapply(1:length(L), function(i) rep(NA, length(L[[i]]$t))) # Replace with NA
t <- lapply(1:length(L), function(i) rep(list(NULL), length(L[[i]]$t))) # Replace with list of NULL 
: the result is a list of list with NULL
...