use*_*954 3 arrays r matrix dataframe
我有一个1000x1向量(1000行和1列).我想成对获取元素(第1行和第2行,第3行和第4行,第5行和第6行等)
这是我到目前为止所拥有的
for (j in 1: ncol(total_loci)){
for (i in 1: sample_size){
# a pair
genotype[i]<- paste(total_loci[i, j], total_loci[i+1,j], sep="")
}
}
Run Code Online (Sandbox Code Playgroud)
因此,基因型应该是含有基因型的500x1载体(500行和1列).假设我的for循环是正确的.我认为我需要跳过其他所有索引 - 所以我i应该从1开始,然后total_loci是3,5,7,9等.变量是类数据框.
您应尽可能尝试使用矢量化解决方案.它们通常比循环更有效,速度更快.
在这种情况下,您可以使用seq为每个其他元素生成索引向量.然后,您可以使用该索引向量成对地对原始向量进行子集化.
# sample data
x <- replicate(5, sample(LETTERS, 1000, replace=TRUE), simplify=FALSE)
x <- as.data.frame(x, stringsAsFactors=FALSE)
names(x) <- paste("V",1:NCOL(x), sep="")
# function to concatenate every other observation as a pair
f <- function(x) {
s <- seq(2, length(x), 2)
paste(x[s-1], x[s], sep="")
}
# run algorithm for each column
y <- as.data.frame(lapply(x, f), stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4224 次 |
| 最近记录: |