Я пытаюсь извлечь данные из фрейма данных для анализа.R: Извлечение данных из данных из анализа
heightweight <- function(person, health) {
## Read in data
data <- read.csv("heightweight.csv", header = TRUE,
colClasses = "character")
## Check that the outcomes are valid
measure = c("height", "weight")
if(health %in% measure == FALSE){
stop("Valid inputs are height and weight")
}
## Truncate the data matrix to only what columns are needed
data <- data[c(1, 5, 7)]
## Rename columns
names(data)[1] <- "Name"
names(data)[2] <- "Height"
names(data)[3] <- "Weight"
## Convert numeric columns to numeric
data[, 2] <- as.numeric(data[, 3])
data[, 3] <- as.numeric(data[, 4])
## Convert NAs to 0 after coercion
data[is.na(data)] <- 0
## Check that the name is valid
name <- data[, 1]
name <- unique(name)
if(person %in% name == FALSE){
stop("Invalid person")
}
## Return person with lowest height or weight
list <- data[data$name == person & data[health],]
outcomes <- list[, health]
minumum <- which.min(outcomes)
## Min Rate
minimum[rowNum, ]$name
}
Проблема, которую я имею, что происходит с
list <- data[data$name == person & data[health],]
То есть, я бег heightweight("Bob", "weight")
, я получаю следующее сообщение
Error in matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr, :
length of 'dimnames' [2] not equal to array extent
Я гугл этого сообщения и проверил некоторые здесь, но не может определить, в чем проблема.
ли вы имеете в виду 'список <- данные [данные $ имя == человек и данные [здоровье] == здоровье]'? –
@MaratTalipov делает это: 'Ошибка в [.data.frame (данные, данные $ name == person & data [health] ==: dims [product 4706] не соответствуют длине объекта [0]' – dustin
каков ожидаемый результат из 'list <- data [data $ name == person & data [health],]'? –