Как разбить столбец на несколько целых чисел фиксированного размера? - PullRequest
0 голосов
/ 24 октября 2019

В качестве столбца у меня есть целое число, которое я хотел бы разделить на несколько отдельных целых чисел

Создание списка фреймов данных с использованием split() не работает для моих последующих целей

df <- as.data.frame(runif(n = 10000, min = 1, max = 10))

, где split() создает список данных, который я не могу использовать для дальнейших целей, где мне нужно отдельное целое число, например "Values"

map.split <- split(df, (as.numeric(rownames(df)) - 1) %/% 250) # this is not the trick

Моя цель - разбить столбец на разныецелое число (не сохраняется в глобальной среде «Данные», но «Значения»)

Это будет медленный путь:

VecList1 <- df[1:250,]
VecList2 <- df[251:500,]

с

str(VecList1)
Int [1:250] 1 1 10 5 3 ....

Любойсовет добро пожаловать

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Вот один из способов сделать это (хотя, вероятно, лучше найти способ, при котором вам не нужен ряд отдельных векторов, а лучше работать со столбцами в одной матрице):

df <- data.frame(a=runif(n = 10000, min = 1, max = 10))
mx<-matrix(df$a,nrow=250)
for (i in 1:NCOL(mx)) {
  assign(paste0("VecList",i),mx[,i])}

Примечание: использование assign обычно не рекомендуется. Чего бы вы ни пытались достичь, возможно, есть лучший способ сделать это, не создавая ряд новых векторов в глобальной среде.

0 голосов
/ 24 октября 2019

Если я правильно интерпретирую (неясно для меня), вот небольшая проблема и то, что, я думаю, вы просите.

set.seed(2)
df <- data.frame(x = runif(10, min = 1, max = 10))
df$Values <- (seq_len(nrow(df))-1) %/% 4
df
#           x Values
# 1  2.663940      0
# 2  7.321366      0
# 3  6.159937      0
# 4  2.512467      0
# 5  9.494554      1
# 6  9.491275      1
# 7  2.162431      1
# 8  8.501039      1
# 9  5.212167      2
# 10 5.949854      2

Если все, что вам нужно, это столбец Values какего собственный объект, то вы можете просто изменить df$Values <- ... на Values <- ....

...