Powered By Blogger

суббота, 27 июня 2015 г.

Удаление ненужных столбцов

There's also the subset command, useful if you know which columns you want:
df <- data.frame( a = 1:10, b = 2:11, c = 3:12 )
df <- subset(df, select = c(a,c))  #откуда, что оставляю

UPDATED after comment by @hadley: To drop columns a,c you could do:
df <- subset(df, select = -c(a,c) )  #откуда, что выкидываю 



Воу, воу! Столнкнулась с проблемой объединения столбцов. Ну так вот-с.
Решается это весьма просто. 
 x =  data.frame(a = 1:5, b=rnorm(5))
 y =  data.frame(a = 7:11, b = seq(0, -5, -1))
> x
  a          b
1 1 -0.4552751
2 2  0.8366082
3 3  0.6694684
4 4  1.1653944
5 5  0.1074383
> y
   a  b
1  7  0
2  8 -1
3  9 -2
4 10 -3
5 11 -4

z =data.frame(x,y)   
#добавляет столбцы справа. НЕОБХОДИМ одинаковый размер по строчкам!!!!
> z
  a          b a.1 b.1
1 1 -0.4552751   7   0
2 2  0.8366082   8  -1
3 3  0.6694684   9  -2
4 4  1.1653944  10  -3
5 5  0.1074383  11  -4

> z1 =data.frame(c(x$a, y$a), c(x$b, y$b))
#соединяем стобцы x$a и y$a, 
#x$b, y$b => "наращиваем" столбцы вниз. Теперь нам пофиг на количество строк, но #вот количество столбцов должно быть одинаковым!!!
> z1
   c.x.a..y.a. c.x.b..y.b.
1            1  -0.4552751
2            2   0.8366082
3            3   0.6694684
4            4   1.1653944
5            5   0.1074383
6            7   0.0000000
7            8  -1.0000000
8            9  -2.0000000
9           10  -3.0000000
10          11  -4.0000000
Cоединить два строковых вектора? Неееееет! Никогда! Низачто! R так просто не дается!
 
> summary1$testname
 [1] stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf
 [7] stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf
[13] stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf
[19] stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf
[25] stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf
[31] stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf
[37] stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf
[43] stem-n-leaf stem-n-leaf
Levels: stem-n-leaf
> summary3$testname
[1] stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf stem-n-leaf
[8] stem-n-leaf stem-n-leaf
Levels: stem-n-leaf
> c(summary1$testname, summary3$testname)
 [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[42] 1 1 1 1 1 1 1 1 1 1 1 1
Но! Я тут подумала, и решила, а почему бы мне их сначала в чары не преобразовать?
И, блеать, ПОЛУЧИЛОСЬ ЖЕ!!!!
 
c(as.character(summary3$testname), as.character(summary1$testname))
 [1] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
 [6] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
[11] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
[16] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
[21] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
[26] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
[31] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
[36] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
[41] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
[46] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"
[51] "stem-n-leaf" "stem-n-leaf" "stem-n-leaf"

Комментариев нет:

Отправить комментарий