我有一个数据框:包含表示X,Y值的列对的数据。
我需要将对转换为单个矩阵。另一种思维方式是说第二步循环列。
这是我正在使用的代码:
for (set in 1:4){
data[set] <-cbind(data[, set], data[,set+1])
}
但我收到错误:
Error in `[.data.frame`(data, , set + 1) : undefined columns selected
另外,我事先不知道1:4的范围,有没有办法可以得到最后一列的计数,即data.width?
稍后我需要将每个单独的矩阵传递给一个函数。
有不同的方法吗?
答案 0 :(得分:1)
试试这个例子:
#dummy data
x <- matrix(1:24,ncol=8)
#dummy function
myfunc<-function(x,y)x+y
#use myfunc per 2 columns
sapply(seq(1,ncol(x)-2,2),
function(i)myfunc(x[,i],x[,i+1]))
修改强>
#dummy data
x <- matrix(1:24,ncol=8)
#dummy plot function
myfunc<-function(x,y){
plot(x,y,
xlim=c(min(x),max(x)),
ylim=c(min(y),max(y)))
}
#use myfunc per 2 columns
sapply(seq(1,ncol(x)-2,2),
function(i)myfunc(x[,i],x[,i+1]))
答案 1 :(得分:0)
我用它排序:
width <- ncol(data) -2
for (set in 1:width){
x < - set
y <- set +1
data[set] <-cbind(data[, x], data[,y])
}