私はUCI Machine Learningリポジトリから取得したクラスのデータセットを用意しています。私は日付でそれをサブセット化し、日付と時間でさまざまな測定値をプロットする必要があります。データセットを準備をするために、私は次のコードを使用します。私は、コンソールに私のスクリプトを実行すると、その後関数内でRデータセットに新しい列を作成する
prep <- function(x) {
setwd("/Users/johnlynch/Google Drive/DataToolbox/Exploring/Week 1")
power <- read.csv("poweruse.txt", sep = ";", stringsAsFactors = FALSE)
power$Date <- strptime(power$Date, "%d/%m/%Y")
power <- subset(power, Date == "2007-02-01"|Date == "2007-02-02")
}
を、私は「パワー< - 予備校()」と入力し、サブセット化データを変数に入れている「とパワー、」私は期待どおりに:
ヘッド(MYDATA)
日付時間Global_active_power Global_reactive_power電圧Global_intensity Sub_metering_1 Sub_metering_2 Sub_metering_3
666 37 2007-02-01午前0時00分00秒0.326 0.128 243.150 1.400 0.000 0.000 66637 0
66638 2007-02-01午後12時01分○○秒0.326 0.130 243.320 1.400 0.000 0.000 66638 0
66639 2007-02 66639 0.000 0
66640 2007-02-01午前0時03分00秒0.324 0.134 243.900 1.400 0.000 0.000 66640 0
66641 2007-02-01 00 -01午前0時02分00秒0.324 0.132 1.400 0.000 243.510。 04:00 0.322 0.130 243.160 1.400 0.000 66641 0.000 0
私はプロットを行ったよう66642 2007-02-01午後12時05分00秒0.320 0.126 1.400 0.000 242.290 66642 0.000 0
しかし、私はコースのプロットを一致させるために、私が作成するために必要な、ということを発見しました日付と時刻の列を1つにまとめて、データフレームの新しい列$ newdateを作成します。だから私は、次のように私のスクリプトを調整してみました:
prep <- function(x) {
setwd("/Users/johnlynch/Google Drive/DataToolbox/Exploring/Week 1")
power <- read.csv("poweruse.txt", sep = ";", stringsAsFactors = FALSE)
power$Date <- strptime(power$Date, "%d/%m/%Y")
power <- subset(power, Date == "2007-02-01"|Date == "2007-02-02")
power$newDate <- with(power, paste(Date, Time))
}
私はmydataという変数へのデータの残りの部分と一緒に出力されることでしょうデータフレームで新しい列を作成する必要がありますこと、ちょっと、と思いました。私はその機能を実行したときしかし、私が手ONLY出力は、$ NEWDATE列の内容です:
ヘッド(MYDATA)
[1]「2007-02-01午後12時00: 00 "" 2007-02-01 00:01:00 "" 2007-02-01 00:02:00 "" 2007-02-01 00:03:00 "
[5]" 2007-02- 01 00:04:00 "" 2007-02-01 00:05:00 "
何が間違っていますか? 2番目のスクリプトがデータセット全体を出力しないのはなぜですか?最後に新しい列が追加されます。誰かがそれを修正する方法を教えてもらえますか?
関数の最後の行に 'return(power)'(または単に 'power')を追加します。 –
Weihuangは正しいです。関数はコードの最後の行にあるオブジェクトのみを返します。あなたのケースでは、単に列を作成していました。 – winampman