将全长列转换为R中一行中的一个变量

时间:2015-06-13 22:29:55

标签: r

我想知道是否可以将1列转换为彼此旁边的1个变量

即:

d <- data.frame(y = 1:10)
> d
    y
1   1
2   2
3   3
4   4
5   5
6   6
7   7
8   8
9   9
10 10

将此列转换为:

> d
1 2 3 4 5 6 7 8 9 10

2 个答案:

答案 0 :(得分:2)

我们不知道您将如何使用这些数字,但我认为没有必要进行任何转换。您可以使用d$y来获取应用于任何颜色地图的数字。例如,参见。

d <- data.frame(y = 1:7)
library(RColorBrewer)
mypalette<-brewer.pal(4,"Greens")
mycol <-palette()#rainbow(7) 
heatmap(matrix(1:28,ncol=4),col=mypalette[d$y[1:4]],xlab="Greens (sequential)",
      ylab="",xaxt="n",yaxt="n",bty="n",RowSideColors=mycol[d$y])

答案 1 :(得分:0)

不确定是什么:

  

彼此旁边的1个变量

但是获得理想结果的方法很少(再次取决于目标)。你可以这样做:

  1. d$y
  2. unname(unlist(d)) #sstgested by agstudy
  3. 或者,更好的是,要将数据框的列转换为向量,请执行以下操作:

    v <- as.vector(d[,1]) 
    
  4. as string:

        args <- paste(d$y, sep=" ")
        args<-noquote(args)
    
  5. 现在你已经

    [1]  1  2  3  4  5  6  7  8  9 10