R语言,请问怎么在数据框新增一列为前两列之比?

Python046

R语言,请问怎么在数据框新增一列为前两列之比?,第1张

Weight<-c(4.17, 5.58, 5.18, 6.11, 4.5, 4.61, 5.17, 4.53, 5.33, 5.14)

Height<-c(1.75, 1.8, 1.65, 1.9, 1.74, 1.91, 1.75, 1.8, 1.65, 1.9)

save1<-data.frame(Weight,Height)

//身高体重数据写入文本文件

write.csv(save1, file = "foo1.csv", sep = ",", col.names = TRUE)

//读取数据至data数据框

foo<-read.csv("foo1.csv", header=T, sep=",")

//data数据框新增一列bmi变量

data.frame(Weight,Height,BMI=Weight/Height)

//计算weight和height的平方的比值存入bmi变量

save2<-data.frame(save1,BMI=foo$1/foo$2)

//将更新后的data数据框写入文件。

write.csv(save2, file = "foo2.csv", sep = ",", col.names = TRUE)

重编码涉及根据同一个变量和/或其他变量的现有值创建新值的过程,如将符合某个条件的值重新赋值等,这里主要介绍两种常见的方法:

#第一种方法

per <- data.frame(name = c("张三","李四","王五","赵六"),

age = c(23,45,34,1000))

per

per$age[per$age == 1000] <- NA #设置缺失值

per$age1[per$age <30] = "young" #生成新变量

per$age1[per$age >= 30 &per$age<50] <- "middle age"

per

#第二种方法

per <- data.frame(name = c("张三","李四","王五","赵六"),

age = c(23,45,34,1000))

per <- within(per,{

age1 <- NA

age1[age <30] <- "young"

age1[age>=30 &age<50] <- "middle age"

})

per