Итак, я пытаюсь выяснить большую проблему, и я думаю, что это может произойти именно от того, что происходит, когда я импортирую данные из файла .txt
. Мои постоянные начинающие команды:Как мои данные хранятся в R?
data<-read.table("mydata.txt",header=T)
attach(data)
Так что, если мои данные есть сказать, 3 колонки с заголовками "Var1"
, "Var2"
и "Var3"
, как именно все импортируется? Кажется, что он импортируется как 3 отдельных вектора, а затем связан вместе, подобно использованию cbind()
.
Моя большая проблема заключается в изменении данных. Если строка в моем кадре данных имеет пустое место (в любом столбце) Мне нужно, чтобы удалить его:
data <- data[complete.cases(data),]
Perfect - теперь говорит, что исходный кадр данных было 100 строк, 5 из которых были пустой слот. Мой новый кадр данных должен иметь 95 строк, не так ли? Ну, если я стараюсь:
> length(Var1)
[1] 100
> length(data$Var1)
[1] 95
Так что, похоже, как в оригинальной колонке, обозначенной Var1
не зависит от линии, где я переписал весь кадр данных. Вот почему я считаю, что когда я импортирую данные, у меня действительно есть только 3 отдельных столбца, которые хранятся где-то под названием Var1
, Var2
и Var3
. Насколько получать R признать, что я хочу модифицированную версию колонки, я думаю, что мне нужно сделать что-то вдоль линий:
Var1 <- data$Var1 #Repeat for every variable
Моя проблема с этим состоит в том, что мне нужно будет написать выше бит кода для каждой отдельной переменной. Кадр данных у меня большой, и этот способ кодирования кажется утомительным. Есть ли лучший способ для меня преобразовать мои данные, а затем иметь возможность вызывать измененные переменные без необходимости использовать предикат данных $ каждый раз?
+1, это хороший способ объяснить это. Я фактически просто помещаю что-то подобное в комментарий, используя аналогию с hardcopy vs '.doc'. – gung