我正在创建一个自动在矩阵中创建直方图的函数。但是,如果矩阵中的一列不是整数或数字,则函数会停止,并且不会继续完成其余列。以下是代码
V1 <- rnorm(26)
V2<-letters
V3 <- rnorm(26)
all.data <- matrix(V1, V2, V3)
My_function <- function(x)
for(i in 1:ncol(x)) {
hist(x[,i], main = paste("Histogram of",colnames(x)[i]), xlab=paste(colnames(x)[i]))
}
My_function(all.data)
我需要知道要添加到我的代码中的内容,告诉R跳过非整数/数字的列(例如我的示例中的V2),以便获得我想要的所有直方图并跳过非整数/数字列。
答案 0 :(得分:1)
最好是实际获得该类,然后仅索引数字
V1 <- rnorm(26)
V2<-letters
V3 <- rnorm(26)
all.data <- data.frame(V1, V2, V3)
My_function <- function(x){
col<-which(sapply(x,class) %in% c("numeric","integer"))
for(i in col) {
hist(x[,i], main = paste("Histogram of",colnames(x) [i]),
xlab=paste(colnames(x)[i]))
}}
My_function(all.data)