データフレームを取り込んだ後にRでリストを返す関数で関数をネストしようとしています。エラー:"参照オブジェクトがネストされた関数であるときにオブジェクト '...'が見つかりません
Error in ------frqTbl <- function(df) { : object 'frqTbl' not found
は、関数定義の前に関数の変数を定義するためにいくつかの方法はありますか入れ子に間違っている
はでテスト:??
data(diamonds, package = "ggplot2")
test <- diamonds[1:100,]
mstrFnct(test)
mstrFnct <- function(df){
output <- list()
frqTbl <- function(df){
fctvr <- df[sapply(df,is.factor)]
logicvr <- df[sapply(df,is.logical)]
nwDf <- data.frame(fctvr,logicvr)
if(ncol(nwDf)>0){
freq <-list()
for (i in 1:ncol(nwDf)){
freq[[i]] <- as.data.frame(table((nwDf)[,i]))
names(freq[[i]])[1]=colnames(nwDf[i])
}
return(freq)
}
else{
print("There are no categorical or logical variables in the data
frame.")
}
}
output[[length(output)+1]] <- frqTbl(df)
rSqd <- function(df){
y <- df[sapply(df,is.numeric)]
if(ncol(y)>=2){
c <- combn(colnames(y), 2)
vrPrs <- paste(c[1,], c[2,], sep = "-")
m <- cor(y, method = "pearson")
r <- m[which(lower.tri(m))]
vlus <- r^2
df2 <- data.frame(vrPrs, values)
names(df2) <- sub("^VrPrs$", "Variable Pairs",
names(df2))
names(df2) <- sub("^vlus$", "R-Square", names(df2))
format.data.frame(df2)
return(df2)
}
else{
print(paste("This Data Frame does not have two or more numerical
columns to compute the Pearson correlation coefficient(s)."))
}
}
output[[length(output)+1]] <- rSqd(df)
}
[OK]をクリックします。まず、別の機能を分けてください。 frqTbl()とrSqd()の定義はmstrFnct()の外側になければなりません。 mstrFnct()では、他の2つを呼び出すだけです。その後、変数名を修正してください。 Rは大文字と小文字を区別する言語です。 – nevrome
おそらく、あなたは 'diamonds [1:100、]'を意味し、 'diamonds [1-100、]'は意味しません。 – nevrome