首页 > 解决方案 > 操作数据框中的列

问题描述

我有一个从 Wikipedia 上抓取的名为 Draft 的数据框。我正在尝试使用给定行列(称为 Player)中的字符数,以便除以 2 以删除行列字段中行列长度的一半。换句话说,如果 Player 列中的 row1 的值当前在数据框中,其值为(只是一个示例)“Mayfield,BakerBaker Mayfield”,我想将其简化为“Mayfield,Baker”。在列本身上使用长度函数似乎没有帮助,因为长度始终为 256 个字符。这是我抓取文件的方式:

命令 1(调用包)

library("rvest")

命令 2(识别网页)

url <- 'https://en.wikipedia.org/wiki/2018_NFL_Draft'

命令 3(刮擦)

draft <- url %>%
  read_html() %>%
  html_nodes(xpath='//*[@id="mw-content-text"]/div/table[4]') %>%
  html_table()

  draft <- draft[[1]]

这适用于 Excel =LEFT(E2,(LEN(E2)+1)/2)

提前谢谢了!

标签: r

解决方案


这应该适合你

# I modified this to remove the first blank column, it causes errors otherwise
draft <- draft[[1]][-1]

# extract the string which follows the pattern from the original Player variable
draft %>%
  mutate(
    Player1 = substr(Player, 1, nchar(Player) / 2 + 1)
  )

推荐阅读