R语言基础-数据列添加与删除

R语言基础-数据列添加与删除,第1张

DT = data.table(x=rep(c("a","b","c"),each=3),

y=c(1,3,6), v=1:9)

DT[, a := 'k'] # 整列添加 ‘k’

DT[, c := 8] # 整列添加数字8

DT[,d:=9L] # 整列添加长整型9

DT[, e := d + 2]

DT[2,d:=10L] # 精确修改2行,d列数字为10

DT[, e := d + 2] # 数据中已经包含e列则是对这列数据的修改

DT[, c('f', 'g') := list( d + 1, c)]

DT[, ':=' ( f = d + 1, g = c)]# 同上

DT[,c:=NULL] # 单列删除

DT[, c('d', 'e', 'f', 'g'):=NULL] # 多列删除

本教程描述了R中如何计算和添加新的变量到一个数据框.你将学习dplyr R包以下R函数:

mutate (): 计算并向数据表中添加新变量。它保留了现有的变量。

transmute (): 计算新列,但删除现有变量。

我们还将提供mutate()和transmute()的三种变体,以便同时修改多个列:

mutate_all () /  transmute_all (): 对数据框中的每一列应用一个函数

mutate_at () /  transmute_at (): 将函数应用于用字符向量选定的特定列

mutate_if () /  transmute_if (): 将一个函数应用于返回TRUE的函数所选择的列。

mutate: 通过保留现有变量来添加新变量

添加新列 (sepal_by_petal_*):

transmute: 通过删除现有变量来创建新变量

添加新列 (sepal_by_petal_*),并删除现有列:

一次修改多个列

我们首先创建一个演示数据集my_data2,它只包含数字列。为此,我们将删除列物种

函数 mutate_all() / transmute_all(),  mutate_at() / transmute_at() 和mutate_if() / transmute_if() 可用于一次修改多个列。

函数简要形式如下所示:

# Mutate variants

mutate_all(.tbl, .funs,...)

mutate_if(.tbl, .predicate, .funs,...)

mutate_at(.tbl, .vars, .funs,...)

# Transmute variants

transmute_all(.tbl, .funs,...)

transmute_if(.tbl, .predicate, .funs,...)

transmute_at(.tbl, .vars, .funs,...)

.tbl: tbl 数据框

.funs: List of function calls generated by funs(), or a character vector of function names, or simply a function.由funs()、函数名的字符向量或简单的函数生成的函数调用列表。

…: funs中函数调用的附加参数。

.predicate: A predicate function to be applied to the columns or a logical vector. The variables for which .predicate is or returns TRUE are selected.

转换所有列

注意,点“.” 表示所有任意变量。

如果.funs有多个名称或多个输入,函数名将被附加到列名中:

注意,输出变量名现在包含了函数名。

转换特定的列

mutate_at (): 转换按名称选择的特定列:

mutate_if (): transform specific columns selected by a predicate function.

mutate_if() 在将变量从一种类型转换为另一种类型时特别有用。

所有数值变量四舍五入:

Summary

本文描述了如何使用dplyr函数向数据框架中添加新的变量列:mutate()、transmute()

mutate(iris, sepal = 2*Sepal.Length): Computes and appends new variable(s).

transmute(iris, sepal = 2*Sepal.Length): Makes new variable(s) and drops existing ones.

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7869960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存