0

リターンというデータフレームがあります。以下のコードをより簡潔にするにはどうすればよいですか? apply、lappply、sapply を使用してみましたが、データフレームの構造が変更され、相関行列を生成できないようです。明確にするために:以下のコードは機能しますが、もっと簡潔にしたいと思います。ありがとう!

returns$VIT <- as.numeric(as.character(returns$VIT))
returns$EFA <- as.numeric(as.character(returns$EFA))
returns$VWO <- as.numeric(as.character(returns$VWO))
returns$VIG <- as.numeric(as.character(returns$VIG))
returns$VNQ <- as.numeric(as.character(returns$VNQ))
returns$iPath.DJP <- as.numeric(as.character(returns$iPath.DJP))
returns$iShares.MUB <- as.numeric(as.character(returns$iShares.MUB))

cor(returns, use="pairwise.complete.obs")

編集:次のテストコードは機能しません。機能させる方法を見つけようとしています。

test <- data.frame(c(.04,.2,"blah"),c(.01,.24,"blah"))
colnames(test) <- c("VIT", "EFA")

new <- apply(test, 2, function(x) as.numeric(as.character(x)))
cor(test, use="pairwise.complete.obs")
4

3 に答える 3

0

これはあなたが探しているものですか?

numeric.columns <- c('VIT','EFA','VWO','VIG','VNQ','iPath.DJP','iPath.DJP','iShares.MUB')
returns[,numeric.columns] <- lapply(returns[,numeric.columns], function(x) as.numeric(as.character(x)))
cor(returns, use="pairwise.complete.obs")
于 2013-05-12T04:54:28.057 に答える