Я новичок в R, поэтому я уверен, что это просто, но я не могу понять это. Вы можете увидеть структуру моего объекта n ниже. Я хочу пропустить n и взять каждое ненулевое значение с правой стороны двоеточия (например, «57454470») и применить к нему функцию.Получение значений из списка (правая сторона двоеточия)
> str(n)
List of 1
$ :List of 10
..$ 15793766: NULL
..$ 15793767: chr "57454470"
..$ 15793769: chr "123652395"
..$ 15793770: chr "38098549"
..$ 15793771: chr "56864789"
..$ 15793776: chr "38722835"
..$ 15793779: chr "37962343"
..$ 15793784: chr "2100162920"
..$ 15793787: chr "2099439832"
..$ 15793791: chr "37992986"
..- attr(*, "dim")= int 10
..- attr(*, "dimnames")=List of 1
.. ..$ rmaddrs$ReportID: chr [1:10] "15793766" "15793767" "15793769" "15793770" ...
..- attr(*, "call")= language by.data.frame(data = rmaddrs, INDICES = rmaddrs$ReportID, FUN = getValueFromXML)
..- attr(*, "class")= chr "by"
Вот результат dput:
dput(n[1])
list(structure(list(`15793766` = NULL, `15793767` = "57454470",
`15793769` = "123652395", `15793770` = "38098549", `15793771` = "56864789",
`15793776` = "38722835", `15793779` = "37962343", `15793784` = "2100162920",
`15793787` = "2099439832", `15793791` = "37992986"), .Dim = 10L, .Dimnames = structure(list(
`rmaddrs$ReportID` = c("15793766", "15793767", "15793769",
"15793770", "15793771", "15793776", "15793779", "15793784",
"15793787", "15793791")), .Names = "rmaddrs$ReportID"), call = by.data.frame(data = rmaddrs,
INDICES = rmaddrs$ReportID, FUN = getValueFromXML), class = "by"))
UPDATE: Я удалил «печать» тестирование, и я пытаюсь использовать среднее значение() для лучшего теста.
sapply(n[1], function(x) mean(x, na.rm=TRUE))
Тогда я должен был использовать unlist и as.numeric и теперь я думаю, что у меня есть то, что мне нужно использовать мои пользовательские функции.
Несомненно, ваша функция не печатается. – Roland
Нет. Я сказал «как тест». Конечно, вы можете быть более полезными. – influent
Прошу прощения, но печать не является хорошей тестовой функцией, поскольку она печатает как побочный эффект. Это не очевидно из вопроса, если это вас сбивает с толку. – Roland