的R - 重新排序列的某些部分在数据帧
问题描述:
我想创建坐标的数据帧,其中列出以下顺序点:的R - 重新排序列的某些部分在数据帧
即从左到右第一排,然后从右到左第二排等
我可以这样做产生的所有点:
x_val <- -3:3; x_len <- length(x_val)
y_val <- -2:2; y_len <- length(y_val)
expand.grid(x=-x_lim:x_lim, y=y_lim:-y_lim)
可是所以我想这是不正确的顺序:
df <- lapply(1:y_len, function(i){
data.frame(x=(-1)^(1+i)*x_val,
y=rep(-y_val[i],x_len))})
df <- do.call("rbind", df)
虽然它的工作原理,是有一个更清洁的方式来实现我想要做什么?谢谢。
答
我不知道这是否是清洁的,但这里有云:
x_val <- -3:3; x_len <- length(x_val)
y_val <- -2:2; y_len <- length(y_val)
n <- x_len*y_len
x <- rep(c(x_val, rev(x_val)), n, length.out = n)
y <- sort(rep(c(y_val), n, length.out = n), decreasing =TRUE)
df <- data.frame(x, y)
非常有趣的问题:投票了! – SabDeM