R语言 如何创建、索引和修改数据框
在这篇文章中,我们将讨论如何在R编程语言中创建一个数据框,索引和修改数据框。
创建一个数据框
数据框是一个二维标签的数据结构。它可以由不同类型的字段/列组成。它看起来就像SQL中的一个表,或者像一个Excel工作表。在R中,使用data.frame()方法来创建一个数据框。创建一个数据框的语法是这样的
data <- data.frame(columnName1=c(
data1,data2,...),
...........
columnNameN=c(data1,data2,...))
例子 。
在这个例子中,我们来看看如何使用data.frame()方法在R中创建一个数据框。
# create a data frame
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
runs=c(100, 200, 408, NA),
wickets=c(17, 20, NA, 5))
print("stats Dataframe")
stats
输出
"stats Dataframe"
player runs wickets
1 A 100 17
2 B 200 20
3 C 408 NA
4 D NA 5
对数据框架进行索引
要访问数据框中的特定数据,请使用方括号并指定要获取的列名或行号和列号。让我们来看看不同方式的数据框架索引的语法。
# fetching the data in particular column
data["columnName"]
# fetching data of specified rows and
# columns
data[ fromRow : toRow , columnNumber]
# fetches first row to third row
# and second column
Eg:- data[1:3,2]
例子 。
在下面的代码中,我们创建了一个数据框架,并通过获取指定行和特定列的数据对其进行了索引。
# create a data frame
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
runs=c(100, 200, 408, NA),
wickets=c(17, 20, NA, 5))
print("stats Dataframe")
stats
# fetch data in certain column
stats["player"]
print("----------")
# fetch certain rows and columns
stats[1:3,2]
输出
"stats Dataframe"
player runs wickets
1 A 100 17
2 B 200 20
3 C 408 NA
4 D NA 5
----------
player
1 A
2 B
3 C
4 D
----------
100 200 408
修改数据框架
数据框架中的数据修改
为了修改数据框中的数据,我们使用了索引和重新赋值技术。让我们来看看如何修改数据框中的数据的语法。
data[rowNumber, columnName] <- “newValue”
向数据框中添加一行
要在数据框中添加一行,请使用rbind()函数,它接受两个参数。一个是数据框架,另一个是我们需要插入的行,作为一个元素的列表。rbind的语法如下所示
rbind( dataframeName, list( data1, data2, …))
在数据框架中添加一列
使用cbind()函数在数据框架中添加一个列,该函数接受两个参数。一个是我们添加新列的数据框架,另一个是新列中带有列名的数据。下面是cbind()函数的语法。
cbind( dataframeName, columnName = c(data1, data2, …)
从数据框中删除行和列
使用下面的语法从数据框中删除一行和一列
# remove row from a dataframe
# deletes the row of specified row number
dataframeName <- dataframeName[-rowNumber,]
# remove column from a dataframe
dataframeName$columnName <- NULL
例子 。
在这个例子中,我们创建了一个数据框架,并对数据框架进行了插入、删除和修改等修改操作。
# create a data frame
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
runs=c(100, 200, 408, NA),
wickets=c(17, 20, NA, 5))
cat("stats Dataframe\n")
stats
# modify the data
stats[4,"runs"] <- 274
cat("\nModified dataframe\n")
stats
# added new row
cat("\nDataFrame after a row insertion\n")
stats<-rbind(stats,list('E',500,1))
print(stats)
# added new column
cat("\nDataFrame after a new column insertion\n")
stats<-cbind(stats,matches=c(2,3,10,2,12))
print(stats)
# deleted the second row
stats<-stats[-2,]
# deleted the wickets column
stats$wickets<-NULL
cat("\nDataframe after deletion of a row & column\n")
stats
输出
stats Dataframe
player runs wickets
1 A 100 17
2 B 200 20
3 C 408 NA
4 D NA 5
Modified dataframe
player runs wickets
1 A 100 17
2 B 200 20
3 C 408 NA
4 D 274 5
DataFrame after a row insertion
player runs wickets
1 A 100 17
2 B 200 20
3 C 408 NA
4 D 274 5
5 E 500 1
DataFrame after a new column insertion
player runs wickets matches
1 A 100 17 2
2 B 200 20 3
3 C 408 NA 10
4 D 274 5 2
5 E 500 1 12
Dataframe after deletion of a row & column
player runs matches
1 A 100 2
3 C 408 10
4 D 274 2
5 E 500 12