我想遍歷數據框並針對特定列(如價格)繪製每列。迭代數據框併爲每列創建一個圖
我迄今所做的是:
for(i in ncol(dat.train)) {
ggplot(dat.train, aes(dat.train[[,i]],price)) + geom_point()
}
我想是有通過繪製對決策變量的第一次介紹我的數據(大約300列)(即價格)
我知道有一個類似的問題,但我不明白爲什麼上述不是真的工作。
我想遍歷數據框並針對特定列(如價格)繪製每列。迭代數據框併爲每列創建一個圖
我迄今所做的是:
for(i in ncol(dat.train)) {
ggplot(dat.train, aes(dat.train[[,i]],price)) + geom_point()
}
我想是有通過繪製對決策變量的第一次介紹我的數據(大約300列)(即價格)
我知道有一個類似的問題,但我不明白爲什麼上述不是真的工作。
你可以這樣做,我已經使用mtcars數據繪製其他連續變量與MPG。你必須將數據融合成長形式(使用聚集),然後使用ggplot將這些連續變量(disp,drat,qsec等)與mpg進行比較。在你的情況下,而不是MPG你會花費價格和所有其他連續變量被融化(像這裏disp,drat,qsec等),其餘的分類變量可以採取形狀和顏色等(可選)。
library(tidyverse)
mtcars %>%
gather(-mpg, -hp, -cyl, key = "var", value = "value") %>%
ggplot(aes(x = value, y = mpg, color = hp, shape = factor(cyl))) +
geom_point() +
facet_wrap(~ var, scales = "free") +
theme_bw()
編輯:
這是另一種情況下,解決方案,我們需要爲每個變量的不同的圖。
創建一個像這樣的變量列表:lyst <- list("disp","hp")
,您可以使用colnames
函數獲取所有變量名稱。使用lapply來遍歷數據框中的所有「精簡」對象。
setwd("path") ###set the working directory here, This is the place where all the files are saved.
pdf(file=paste0("one.pdf"))
lapply(lyst, function(i)ggplot(mtcars, aes_string(x=i, y="mpg")) + geom_point())
dev.off()
pdf文件將會是。可以用在你的工作目錄中的所有圖表的PDF文件,你已經先設置
輸出解決方案產生:
約300列。我認爲不可避免地要把它們放在一起。 –
@ J.Ze請你提一下問題中的所有事實,有人會如何知道有太多的變量要繪製。我現在會提出一個不同的解決方案。 – PKumar
你說得對。對不起 –
使用'AES(dat.train [我],價格)'代替。 – Wolfgang