R-从许多列中获取单个列

时间:2012-08-28 07:41:51

标签: r

我有350到2500的波长,每个人都有数据:

x350    x351    x352    x353    x354 ...... x2500
0.18    0.17    0.17    0.17    0.16 ...... 0.3
0.16    0.15    0.15    0.15    0.15 ...... 0.47
0.14    0.14    0.13    0.13    0.13 ...... 0.35

我需要创建一个没有wavelenght名称的列,并为这个新列提供一个名称:

Wave
0.18
0.16
0.14
0.17
0.15
0.14
0.17
0.15
0.13
0.16
0.15
0.13
.
.
.
0.3
0.47
0.35

m是我的文件,wavelenghts的列从17 col到2167 col。我试过了:

a <- list(m[1:16,17:2167])

但是我得到的列表中包含了列的名称:

list(structure(list(X350 = c(0.15723315, 0.138406682, 0.174909807, 
0.143139974, 0.123193808, 0.154449448, 0.163255619, 0.126194713, 
0.14327512, 0.066265248, 0.139851395, 0.158271497, 0.158060045, 
0.145313933, 0.143890661), X351 = c(0.154324452, 0.135509959, 
0.173350322, 0.139867145, 0.121439474, 0.15276091, 0.160391152, 
0.125592826, 0.140349489, 0.065316491, 0.137927937, 0.158400317, 
0.156211611, 0.142498763, 0.141353986), X352 = c(0.151243533....

如何只从2465列中获取一个名称的列?

更多信息

str(m)

'data.frame':   16 obs. of  2167 variables:
 $ pott : int  48 49 50 51 52 53 54 55 56 57 ...
 $ b    : chr  "B1" "B1" "B1" "B1" ...
 $ F : int  1 1 1 1 1 1 1 1 1 1 ...
 $ G  : chr  "Sunstar" "Quarrion" "Nacozari" "W130114" ...
 $ R : int  3 3 3 3 3 3 3 3 3 3 ...
 $ D  : int  80 80 81 80 81 80 82 82 82 82 ...
 $ W: num  1.8 1.5 1.3 1.9 1.8 1.25 1.85 2.1 1.6 2.4 ...
 $ S : num  43.4 35.7 44.7 48.6 45.3 35.5 49.2 49.1 46.8 41.5 ...
 $ R  : num  -0.327 1.149 2.348 1.636 1.952 ...
 $ V  : num  76.4 49 118.9 108 114.5 ...
 $ J    : num  158 114 191 169 183 ...
 $ P: num  19.9 10.6 24.1 21.1 23.6 ...
 $ Ce : num  0.367 0.13 0.466 0.36 0.462 ...
 $ Ci   : num  273 246 280 263 272 ...
 $ S : num  23.5 29 30.9 29.4 24.1 ...
 $ L  : num  42.5 34.4 32.4 34 41.4 ...
 $ X350 : num  0.176 0.157 0.138 0.175 0.143 ...
 $ X351 : num  0.172 0.154 0.136 0.173 0.14 ...
 $ X352 : num  0.169 0.151 0.133 0.172 0.138 ...
 $ X353 : num  0.167 0.147 0.132 0.17 0.137 ...
 $ X354 : num  0.165 0.147 0.13 0.167 0.133 ...
 $ X355 : num  0.162 0.146 0.127 0.166 0.13 ...
 $ X356 : num  0.159 0.144 0.126 0.164 0.128 ...
 $ X357 : num  0.158 0.14 0.125 0.161 0.125 ...
 $ X358 : num  0.155 0.138 0.123 0.159 0.124 ...
 $ X359 : num  0.153 0.137 0.121 0.157 0.123 ...
 $ X360 : num  0.15 0.135 0.12 0.154 0.122 ...
....$2500

1 个答案:

答案 0 :(得分:0)

我猜您的数据是在文本文件中

data <- read.table("your_file", header=T, quote="\"")

所以,数据看起来像

structure(list(x350 = c(0.18, 0.16, 0.14), x351 = c(0.17, 0.15, 
0.14), x352 = c(0.17, 0.15, 0.13), x353 = c(0.17, 0.15, 0.13)), .Names = c("x350", 
"x351", "x352", "x353"), class = "data.frame", row.names = c(NA, 
-3L))

result <- data.frame(Wave = unlist(data,use.names=FALSE))

将产生

   Wave
1  0.18
2  0.16
3  0.14
4  0.17
5  0.15
6  0.14
7  0.17
8  0.15
9  0.13
10 0.17
11 0.15
12 0.13