Сохраните метки из исходного файла следующим образом:
df = read.table('data.txt', header = T)
Если у вас есть столбцы с именами x и y, вы можете обращаться к ним следующим образом:
df$x
df$y
Если вы действительно хотите удалить первую строку из data.frame, вы можете использовать отрицательные индексы, например:
df = df[-1,]
Если вы хотите удалить столбец из data.frame, вы можете присвоить ему NULL:
df$x = NULL
Вот несколько простых примеров того, как создать data.frame и управлять им в R:
> x = rnorm(10)
> y = runif(10)
> df = data.frame( x, y )
> write.table( df, 'test.txt', row.names = F, quote = F )
> read.table( df, 'test.txt', header = T )
> df$x
[1] -0.95343778 -0.63098637 -1.30646529 1.38906143 0.51703237 -0.02246754
[7] 0.20583548 0.21530721 0.69087460 2.30610998
> df$y
[1] 0.66658148 0.15355851 0.60098886 0.14284576 0.20408723 0.58271061
[7] 0.05170994 0.83627336 0.76713317 0.95052671
> df$x = x
> df
y x
1 0.66658148 -0.95343778
2 0.15355851 -0.63098637
3 0.60098886 -1.30646529
4 0.14284576 1.38906143
5 0.20408723 0.51703237
6 0.58271061 -0.02246754
7 0.05170994 0.20583548
8 0.83627336 0.21530721
9 0.76713317 0.69087460
10 0.95052671 2.30610998
> df[-1,]
y x
2 0.15355851 -0.63098637
3 0.60098886 -1.30646529
4 0.14284576 1.38906143
5 0.20408723 0.51703237
6 0.58271061 -0.02246754
7 0.05170994 0.20583548
8 0.83627336 0.21530721
9 0.76713317 0.69087460
10 0.95052671 2.30610998
> df$x = NULL
> df
y
1 0.66658148
2 0.15355851
3 0.60098886
4 0.14284576
5 0.20408723
6 0.58271061
7 0.05170994
8 0.83627336
9 0.76713317
10 0.95052671
header=T
T
TRUE
?read.table
drop = FALSE
при отрицательной индексацииВы можете использовать отрицательную индексацию для удаления строк, например:
dat <- dat[-1, ]
Вот пример:
> dat <- data.frame(A = 1:3, B = 1:3) > dat[-1, ] A B 2 2 2 3 3 3 > dat2 <- dat[-1, ] > dat2 A B 2 2 2 3 3 3
Тем не менее, у вас может возникнуть больше проблем, чем просто удалить метки, которые оказались в строке 1. Более чем вероятно, что R интерпретировал данные как текст и, следовательно, преобразовал их в факторы. Проверить что
str(foo)
, гдеfoo
находится ваш объект данных, говорит о типах данных.Похоже, вам просто нужно
header = TRUE
в своем вызове прочитать данные (при условии, что вы читаете их черезread.table()
или одну из его оболочек).источник
Вероятно, никто не хочет удалять первую строку. Итак, если вы ищете что-то значимое, это условный выбор.
#remove rows that have long length and "0" value for vector E >> setNew<-set[!(set$length=="long" & set$E==0),]
источник
Хотя я согласен с ответом, получившим наибольшее количество голосов, вот еще один способ сохранить все строки, кроме первой:
dat <- tail(dat, -1)
Этого также можно добиться с помощью
dplyr
пакета Hadley Wickham .dat <- dat %>% slice(-1)
источник
Я не эксперт, но это тоже может сработать,
dat <- dat[2:nrow(dat), ]
источник
nrow(dat) == 1
: Затем исходные данные сохраняются.dat <- dat[-1, ]
работал, но он убил мой фреймворк, изменив его на другой тип. Вместоdat <- data.frame(dat[-1, ])
этого пришлось использовать, но это, возможно, особый случай, поскольку этот фрейм данных изначально имел только один столбец.источник