Мы данного вектора, например:Преобразование вектора data.frame, один столбец для каждого уникального значения
x <- c(1,2,1,5,2,1,2,5,1)
Что нам нужно, это data.frame
сказать y
, имеющий число строк, равное length(x)
и номер столбцы, равных length(unique(x))
, это означает, что один столбец за уникальный элемент в x
, таким образом, что y[i,j]==TRUE
тогда и только тогда, когда i
й элемент x
является j
-й уникального элемента x
(присвоено колонке j
):
y <- data.frame("1"=x==1, "2"=x==2, "5"=x==5, check.names=F)
Простой способ выполнить это:
y <- setNames(data.frame(sapply(unique(x), function(i) x==i)), unique(x))
У вас есть идея получше (т.е. особая функция)?
Есть ли что-то в вашем подходе, что вы недовольны? – A5C1D2H2I1M1N2O1R2T1
@AnandaMahto, имеющее сопутствующее влияние, может быть не таким эффективным, как ваш, и, более конкретно, я хотел изучить прямое решение R для этого спроса. – Ali