对前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保存为值?

+0

也许你想'下降= FALSE','数据[1: 12,4,drop = FALSE]/100' – akrun

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似乎并不喜欢它或理解。那是假设要做的。 (我应该警告过你,我非常新手)。另外,“Library(dplyr)”似乎也不起作用。 R认为它是一个包 – CowsGoM00

+0

一旦你习惯了语法,大部分数据处理任务变得非常简单。它被称为“管道”语法,它在dplyr包中使用。这只是意味着前面的事情会被引入下一件事。 – Stephen

+0

dplyr是一个包。你需要使用install.packages(“dplyr”)来安装它,然后加载库。 – Stephen

考虑复制数据框,然后在选择行更新列:

NewData <- Data 
NewData$Value[1:12] <- NewData$Value[1:12]/10 
# NewData[1:12,4] <- NewData[1:12,4]/10   ' ALTERNATE EQUIVALENT