Я пытаюсь создать некоторый код, который будет проходить через набор данных и возвращать последнюю заполненную строку и столбец в качестве источника.Верните все NA с строкой и столбцом
Первый столбец набора данных - это имя учащегося, остальная часть набора данных представляет разделы завершенной программы. Последний столбец каждой строки, содержащий данные, представляет собой заключительный раздел, завершенный учеником.
Таким образом, выход должен быть вектором следующее:
name, sections that are blank and contain NA (i.e. 1_1 or 1_3 etc.)
name, sections that are blank and contain NA
name, sections that are blank and contain NA etc.
Вот кадр данных:
df<-data.frame(list(names = c("John", "Peter", "Steve"),
'1_1' = c("yes", "yes","yes"),
'1_2' = c("yes", "yes", ""),
'1_3' = c("", "yes", "yes"),
'1_4' = c("", "","yes"),
'1_5' = c(NA, NA, NA)),
row.names = NULL)
df
# names X1_1 X1_2 X1_3 X1_4 X1_5
# 1 John yes yes NA
# 2 Peter yes yes yes NA
# 3 Steve yes yes yes NA
df<-apply(df, 2, function(x) gsub("^|^", NA, x))
# names X1_1 X1_2 X1_3 X1_4 X1_5
# [1,] NA NA NA NA NA NA
# [2,] NA NA NA NA NA NA
# [3,] NA NA NA NA NA NA
я получаю следующее после GSUB, который предназначен для Наливаем в НС balnk пространства:
names X1_1 X1_2 X1_3 X1_4 X1_5
[1,] "John" "yes" "yes" NA NA NA
[2,] "Peter" "yes" "yes" "yes" NA NA
[3,] "Steve" "yes" NA "yes" "yes" NA
Вот код, который я пытаюсь к нам:
sapply(df,function(x)
which(x== if(df>2)
{
list(df[,])
}
))
Выход я хочу (как указано выше) вектора со следующим:
name, all fields that contain NA (i.e. 1_1, 1_2 etc.)
name, all fields that contain NA (i.e. 1_1, 1_2 etc.)
etc.
Выход R я получаю это:
$John integer(0)
$Peter integer(0)
$Steve integer(0)
$yes integer(0)
$yes integer(0)
$yes integer(0)
$yes integer(0)
$yes integer(0)
$ integer(0)
$ integer(0)
$yes integer(0)
$yes integer(0)
$ integer(0)
$ integer(0)
$yes integer(0)
$ integer(0)
$ integer(0)
$ integer(0)
Таким образом, не работает вообще. Любые указатели?
Еще раз спасибо.
Леви
ваши данные не работает для меня, пожалуйста, проверьте мои изменения, чтобы увидеть, если это то, что он выглядит, если вы не можете изменить его на правильный код. Я не уверен, что должен делать 'gsub', вы можете уточнить свой вопрос. – rawr
' gsub' просто добавляет 'NA' во все пробелы. Я сделал это, потому что у моего исходного набора данных нет 'NA' во всех пустых местах. Я использовал ваш код, а затем «gsub», и я возвращаю следующее: «имена X1_1 X1_2 X1_3 X1_4 X1_5 [1,]« Джон »« да »« да »NA NA NA [2,]« Peter »" да "" да "" да "NA NA [3,]" Steve "" yes "NA" yes "" yes "NA' Я пытаюсь получить вывод, который должен содержать: имя, пробелы, содержащие NA. См. Мои правки выше. –
Ваша речь не согласуется с комментариями и сообщением выше. Вам нужен вывод, который дает «True» для каждого имени, содержащего NA? Или NA и пробел? Какой формат должен содержать выход? Не могли бы вы вывести точный пример вывода, который вы ожидаете, если найдете решение? Редактировать: Спасибо! – David