对前12行执行一列的特定功能?
问题描述:
这很简单,但由于某种原因,我遇到了麻烦。我有这样一组Data
这样的:对前12行执行一列的特定功能?
File Trait Temp Value Rep
PB Mortality 16 52.2 54
PB Mortality 17 21.9 91
PB Mortality 18 15.3 50
...
它继续像这样的36行。我需要做的是在前12行中将Value
列除以100
。我做了:
NewData <- Data[1:12,4]/100
尝试创建新的数据帧而不更改旧数据。当我这样做时,它将第四列分开,但在全局环境中仅将第四列(第1-12行)保存为全局环境中的Values
,而不是Data
与原始集合中的其余行/列一起保存。总体而言,我试图将NewData
纳入nls
函数,因此我需要将修改后的数据与其余数据一起保存,而不是作为单独的值保存。有没有办法让我修改前12行而不用将R保存为值?
答
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,])
答
考虑复制数据框,然后在选择行更新列:
NewData <- Data
NewData$Value[1:12] <- NewData$Value[1:12]/10
# NewData[1:12,4] <- NewData[1:12,4]/10 ' ALTERNATE EQUIVALENT
也许你想'下降= FALSE','数据[1: 12,4,drop = FALSE]/100' – akrun