6

タイムスタンプとそれに続くデータのいくつかの列を持つデータセットが与えられます

data=
           hour          V1           V2          V3
1 2012-01-19 08:00:00  0.04551064  0.002851064  0.01842553
2 2012-01-19 09:00:00 -0.05305000 -0.052266667 -0.07455000
3 2012-01-19 10:00:00 -0.07518333 -0.101333333 -0.10670000
4 2012-01-19 11:00:00 -0.09195000 -0.099383333 -0.11176667
5 2012-01-19 12:00:00 -0.07743333 -0.074000000 -0.09106667
6 2012-01-19 13:00:00 -0.10978333 -0.096200000 -0.11343333

V1からV3の列を二乗してこれを与えたい

data_sq=
         hour                V1           V2           V3
1    2012-01-19 08:00:00  0.002071218 8.128565e-06 0.0003395002
2    2012-01-19 09:00:00  0.002814303 2.731804e-03 0.0055577025
3    2012-01-19 10:00:00  0.005652534 1.026844e-02 0.0113848900
4    2012-01-19 11:00:00  0.008454803 9.877047e-03 0.0124917878
5    2012-01-19 12:00:00  0.005995921 5.476000e-03 0.0082931378
6    2012-01-19 13:00:00  0.012052380 9.254440e-03 0.0128671211

今はただ使っています

data_sq<-data^2

平方根を取得します。しかし、それはタイムスタンプを破壊するので、私はそれを本当に厄介なもので元に戻さなければなりません

data_sqd<-cbind(data_sq,data$hour)

私は試した

data_sq<-(data[,c(2:4)]^2

しかし、私もタイムスタンプを失います

では、タイムスタンプの列をそのままにして、正方形にする列を指定するにはどうすればよいですか?再現性のあるデータが不足していることをお詫びしますが、これが私がそれを回避できる十分に単純な質問であることを願っています:)

4

3 に答える 3

8

ワンステップソリューション:

data_sq <- transform(data, V1=V1^2, V2=V2^2, V3=V3^2)
于 2012-06-07T21:35:04.507 に答える
7
data_sq <- data # try not to use data, it's a function in base
data_sq[,2:4] <- data[,2:4]^2 # subsetting was off but you were close!
于 2012-06-07T21:27:08.140 に答える
4

オブジェクト全体ではなく、列2:4のみを置き換える必要があります。例えば:

data_sq[, 2:4] <- data[, 2:4]^2
于 2012-06-07T21:27:16.013 に答える