
r语言中添加新列的方法:
假设你数据是data,那么前几列的和是rowSums(data);
然后你可以重新做一个dataframe
data_new<-data.frame(data,sum=rowSums(data))
R语言Data Frame数据框常用 *** 作:
Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的。
Data Frame每一列有列名,每一行也可以指定行名。如果不指定行名,那么就是从1开始自增的Sequence来标识每一行。
使用data.frame函数就可以初始化一个Data Frame。比如我们要初始化一个student的Data Frame其中包含ID和Name还有Gender以及Birthdate,那么代码为:
student<-data.frame(ID=c(11,12,13),Name=c("Devin","Edward","Wenli"),Gender=c("M","M","F"),Birthdate=c("1984-12-29","1983-5-6","1986-8-8”))
另外也可以使用read.table() read.csv()读取一个文本文件,返回的也是一个Data Frame对象。读取数据库也是返回Data Frame对象。
查看student的内容为:
ID Name Gender Birthdate
1 11 Devin M 1984-12-29
2 12 Edward M 1983-5-6
3 13 Wenli F 1986-8-8
这里只指定了列名为ID,Name,Gender和Birthdate,使用names函数可以查看列名,如果要查看行名,需要用到row.names函数。这里我们希望将ID作为行名,那么可以这样写:
row.names(student)<-student$ID
数据准备
1、通过表达式赋值创建
变量名←表达式
以上语句中的"表达式"部分可以包含多种运算符和函数。
2、通过transform函数创建
为原数据框添加新的列,可以改变原变量列的值,也可以赋值NULL删除列变量
transform( _data , ...)
data:要修改的数据;
...:进行修改的内容。
1、variable[condition] <- expression
语句variable[condition] <- expression将仅在condition的值为TRUE时执行赋值。
2、使用within函数进行转化
within(data, expr, ...)
data:要处理的数据;
expr:计算表达式。
1、fix()函数
使用fix()函数调用交互式编辑器修改变量名。例如,要修改df数据集p8列的变量名称为v5,运行fix(df)结果如下:
edit和fix的区别
edit()函数也可以调出交互式编辑器,修改数据后关闭窗口发现数据还是原来的值,所以需要进行赋值 *** 作才能保存修改结果,比如我的数据修改可以写为df <- edit(df)。 fix()函数调出的交互式编辑器,修改数据后关闭窗口发现已经保存了修改后的值,不需要赋值 *** 作。
2、reshape包 rename()函数
rename(dataframe, c(oldname="newname", oldname="newname", ...))
dataframe:要修改的数据框;
oldname="newname":指定修改前变量名和修改后变量名。
3、names()函数重命名变量名
参考资料:
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)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)