У меня возникают проблемы с попыткой удалить строки из набора данных, который, кажется, имеет только один столбец, поэтому он похож на вектор-столбец. Я пытаюсь сделать две вещи, неважно, какая первая (для меня). Вот пример данных:
республиканец,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y
демократ,y,y,y,n,n ,n,y,y,y,n,n,n,n,n,?,?
Ввожу данные так:
sampledata <- read.table("house-votes-84.data",)
но я хочу превратить строку данных для каждой строки в столбец и дать этому столбцу имя. Теперь я знаю, что могу называть вещи следующим образом:
names(sampledata) <- c("col1" ...., "col17")
но может сделать это только в том случае, если есть 17 столбцов. Каждый из столбцов будет разделен запятой.
Во-вторых, я пытаюсь избавиться от строк со знаком вопроса?
Что я пробовал?
Я пробовал такие вещи, как (с моими данными, называемыми образцами данных):
sampledata[apply(sampledata[, -1], MARGIN = 1, function(x) all(x != "?")), ]
Это не работает (и я предполагаю, что есть только один столбец, поэтому маржа должна быть чем-то, что просматривается в каждом из столбцов (я пробовал -1 для маржи, но безрезультатно)
Я попытался изменить ? на NA и использовать
na.omit(sampledata)
Это тоже не работает.
Я пробовал анализировать запятыми, такими как
splitting <- strsplit(as.character(sampledata$V1), split=",")
где V1 — имя одного столбца. Это самый интересный результат, который я получаю
435 из следующих (имеется 435 строк данных)
_[[435]]_
_ [1] "republican" "n" "y" "n" "y" _
_ [6] "y" "y" "n" "n" "n" _
_[11] "y" "n" "y" "y" "y" _
_[16] "NA" "n"_
Но когда я пытаюсь изменить имя: Ошибка в
names(sampledata) <- c("col1", "col2", "col3", "col4", "col5", : 'names' attribute [17] must be the same length as the vector [1]
Я пробовал другие вещи, такие как попытка превратить его в набор данных - однако это, похоже, превращает все значения в числа, которые выглядят рандомизированными (не что-то вроде 0, 1 или 99 для ?, а значения даже до 100, а может и больше)
Я просто пытаюсь получить данные в правильном формате, чтобы я мог запустить регрессию для образцов, у которых нет вопросительных знаков.
Сайты, с которыми мне больше всего повезло, это Stack Exchange Также и здесь:
подмножество строк со всеми/любыми столбцами больше, чем конкретное значение
И тут:
Преобразовать запись, разделенную запятыми, в столбцы
С первым я могу заставить его работать, но даже с этим я генерирую данные в 3 столбцах в самом коде - я не могу заставить тот же код работать с моим? (хотя я могу получить программа для удаления строк с вопросительными знаками, используя:
X <- data.frame(Variable1=c(11,"?",12,15),Variable2=c(2,3,1,4))
X[X$Variable1!="?", ]
Я пытался найти способ сделать код, строка за строкой делать то же самое для импортированных данных, поскольку я также вытягиваю их как data.frame (я понимаю, что у меня есть только 1 столбец, а столбец называется V1, поэтому я также изменил код на
X$V1
sampledata <- read.table("house-votes-84NaN.data.txt")
splitdat = do.call("rbind", strsplit(sampledata$V1, ","))
Но я получаю
**Error in strsplit(sampledata$V1, ",") : non-character argument**
Я понимаю, что мне нужно больше аргументов (я думаю) в read.table, поскольку у них есть еще несколько, но я не понимаю, что нужно делать.
Любая помощь будет очень высоко ценится.
Спасибо,
Брайан