鏈接到數據集是一個日期和時間列用電量列沿 https://d396qusza40orc.cloudfront.net/exdata%2Fdata%2Fhousehold_power_consumption.zip爲什麼此代碼在每週的某天進行繪圖?
power1 <- read.csv(file = "c:/datasets/household_power_consumption.txt", stringsAsFactors=F, header = TRUE,
sep=";", dec = ".", na.strings="?", col.names = c("date1","time1","Global_active_power", "Global_reactive_power",
"Voltage","Global_intensity","Sub_metering_1","Sub_metering_2",
"Sub_metering_3"))
power1$date1 <- as.Date(power1$date1, format="%d/%m/%Y")
power2 <- subset(power1, subset=(date1 >= "2007-02-01" & date1 <= "2007-02-02"))
datetime1 <- paste(as.Date(power2$date1), power2$time1)
power2$Datetime <- as.POSIXct(datetime1)
plot(power2$Global_active_power~power2$Datetime, type="l", ylab="Global Active Power (kilowatts)", xlab="")
當我運行上面,我得到的圖形像我應該有一週的日子在x軸上,即使我運行summary,head和str(),我也沒有看到關於一週中某天的數據。
我試圖用mutate添加我自己的日欄,但它沒有工作。
當我像下面這樣子集時,它不起作用。它正確子集,我只有我需要的數據,但它不會與日期1列或列一週我通過發生變異
power2 <- subset(power1, subset=(as.Date(date1, format = "%d/%m/%Y") >= "2007-02-01"
& as.Date(date1, format = "%d/%m/%Y") <= "2007-02-02"))
創建的一天,我知道as.Posixct將所有的情節元數據,但我不明白爲什麼當我將日期和時間列組合到它自己的列中時,只有在星期幾graph沒有我問。
當我運行像這樣,合併日期和時間列數據與錯誤的一年
power11 <- read.csv(file = "c:/datasets/household_power_consumption.txt", stringsAsFactors=F, header = TRUE,
sep=";", dec = ".", col.names = c("date1","time1","Global_active_power", "Global_reactive_power",
"Voltage","Global_intensity","Sub_metering_1","Sub_metering_2",
"Sub_metering_3"))
#colClasses = c("Date", "character", "factor", "numeric","numeric","numeric","numeric","numeric","numeric"))
power22 <- subset(power11, subset=(as.Date(date1, format = "%d/%m/%Y") >= "2007-02-01"
& as.Date(date1, format = "%d/%m/%Y") <= "2007-02-02"))
datetime1 <- paste(as.Date(power22$date1), power22$time1)
power22$Datetime <- as.POSIXct(datetime1)
謝謝,但我一直在尋找一個爲什麼它的工作方式。如果我按照這個確切順序運行第一批代碼,我會得到我需要的答案。但是如果我按照不同的順序運行它,比如說導入文件,子集並在date1和time1仍然是字符列時創建新列,那麼新的datetime1列已損壞年份或0001而不是2007年。如果將date1更改爲日期,然後創建列,然後就可以了。即使我使用as.POSIXct和as.Date來繪製圖表,它也不起作用。只有在劇情運行之前更改日期。 – Alen