如何将一列拆分为固定大小的多个整数?

时间:2019-10-24 15:36:57

标签: r split integer

我有一个整数作为列,希望将其拆分为多个单独的整数

使用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 :(得分:0)

如果我的解释正确(对我来说不清楚),那么这将减少问题,而且我认为您的要求是

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 <- ...

答案 1 :(得分:0)

这是执行此操作的一种方法(尽管最好找出不需要一系列单独的矢量,而只处理单个矩阵中的列的方法):

$WebClient = new-object System.Net.WebClient
$WebClient.Headers.Add("Authorization", "Basic " + $AuthStr)
$WebClient.Headers.Add("X-Atlassian-Token", "nocheck")
$WebClient.UploadFile($BasePath + "/attachments", (Get-Location).Path + "\" + $AttachmentFile)

注意:通常不建议使用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])} 。无论您要实现什么目标,都可能有一种更好的方法,而不必在全球环境中创建一系列新的载体。