2016-09-28 4 views
1

これは簡単ですが、何らかの理由で問題が発生しています。私はこのようなDataのセットがあります。最初の12行に対して1つの列に対して特定の機能を実行しますか?

File  Trait  Temp Value Rep 
PB  Mortality 16  52.2  54 
PB  Mortality 17  21.9  91 
PB  Mortality 18  15.3  50 
... 

をそして、それは36行のためにそのようになります。私がしなければならないのは、Valueの列を100で最初の12行だけに分けることです。私はした:

NewData <- Data[1:12,4]/100 

古いデータを変更せずに新しいデータフレームを作成しようとすると。これを実行すると、4番目の列は分割されますが、最初のセットの行/列の残りの部分はDataとしてではなく、4番目の列(1〜12行)だけがグローバル環境のValuesとして保存されます。全体として、私はNewDatanls関数に収めようとしているので、変更されたデータを別の値ではなく、残りのデータと共に保存する必要があります。 Rを値として保存せずに最初の12行を変更する方法はありますか?

+0

: 12,4、drop = FALSE]/100' – akrun

答えて

0
library(dplyr) 
newdata <- data[1:12,] %>% mutate(newV = VALUE/100) 
newdata$Value = newdata$newV 
newdata = newdata %>% select(-newV) 

、あなたはデータフレームをコピーして、選択した行の列の更新を検討

full_data = rbind(newdata,data[13:36,]) 
+0

Rはそれを気に入っていない、または理解していないようだから、 "%>%"が何をしているのか本当に興味があります。それは何をすると思われますか。 (私はあなたに警告すべきだった、私は非常に初心者です)。また、「図書館(dplyr)」もうまく機能していないようです。 Rはそれがパッケージだと思っています – CowsGoM00

+0

構文に慣れれば、ほとんどのデータ操作タスクは非常に簡単になります。これは "パイプ"構文と呼ばれ、dplyrパッケージで使用されます。先行するものが次のものに送られることを意味します。 – Stephen

+0

dplyrはパッケージです。 install.packages( "dplyr")を使用してインストールし、ライブラリをロードする必要があります。 – Stephen

1

を行うことができます。おそらく、あなたは1 [ `ドロップ= false`を、`データが欲しい

NewData <- Data 
NewData$Value[1:12] <- NewData$Value[1:12]/10 
# NewData[1:12,4] <- NewData[1:12,4]/10   ' ALTERNATE EQUIVALENT 
関連する問題