R语言 对数据框架进行索引和切分

R语言 对数据框架进行索引和切分

在这篇文章中,让我们来讨论一下R语言中的数据框架的索引和切片。

为数据框建立索引

通过对数据框架进行索引,我们将获得特定的列数据。索引可以通过在方括号中指定列名来完成。索引数据框架的语法是

dataframeName[“columnName”]

例子: 在这个例子中,让我们创建一个数据框 “stats”,其中包含球员的跑动成绩和所拿的小球,然后对数据框进行索引,以提取球员的跑动成绩。

# 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["runs"]

输出

"stats Dataframe"
  player runs wickets
1      A  100      17
2      B  200      20
3      C  408      NA
4      D   NA       5
  runs
1  100
2  200
3  408
4   NA

切分数据框

切分数据框可以得到所需的行和列。这可以通过三种方式完成。它们列在下面-

  • 用[,]进行分片
  • 用逻辑向量分片。
  • 用subset()分片。

用[ , ] 切片

[ , ]对数据帧进行分片,返回指定的行和列的数据。这方面的语法提到如下

dataframeName[ fromRow : toRow , columnNumber ]

例子

在下面的代码中,我们对数据框架进行了切片处理,以获取指定的行和列。

# 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 2,3 rows and 1,2 columns
stats[2:3,c(1,2)]
  
# fetch 1:3 rows of 1st column
cat("players - ")
stats[1:3,1]

输出

"stats Dataframe"
  player runs wickets
1      A  100      17
2      B  200      20
3      C  408      NA
4      D   NA       5
  player runs
2      B  200
3      C  408
players - [1] "A" "B" "C"

用逻辑向量进行切片

我们可以通过指定逻辑条件对数据进行切片处理。它被用来获取过滤后的数据。

例子

在这个例子中,我们获取了得分超过100分的球员的记录。

# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 23),
                wickets=c(17, 20, 3, 5))
  
print("stats Dataframe")
stats
  
# fetch player details who scores 
# more than 100 runs
batsmens<-stats[stats$runs>100,]
batsmens

输出

"stats Dataframe"
  player runs wickets
1      A  100      17
2      B  200      20
3      C  408       3
4      D   23       5
  player runs wickets
2      B  200      20
3      C  408       3

用subset()进行切片

我们可以使用subset()方法对数据帧进行切片。subset方法接受数据、要切片的过滤逻辑和要获取的列。使用subset进行切分的语法是

subset( x = dataframe, subset = filter_logic, select=c(columnNames))

例子

在下面的代码中,我们通过使用子集方法对数据框进行切片,从数据框的统计中获取了摘取5个以上小球的球员。

# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 23),
                wickets=c(17, 20, 3, 5))
  
print("stats Dataframe")
stats
  
# fetch player details who pick 
# more than 5 wickets
subset(x=stats, subset=wickets>5, select=c(player,wickets))

输出

"stats Dataframe"
  player runs wickets
1      A  100      17
2      B  200      20
3      C  408       3
4      D   23       5
  player wickets
1      A      17
2      B      20

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程