操纵数据框中的列

时间:2018-04-28 22:31:17

标签: r

我有一个名为draft的数据框,我从维基百科中删除了。我试图使用给定行列(称为播放器)中的字符数,以便除以2以删除行列字段中行列的长度的一半。换句话说,如果播放列中的row1&#39的值当前在数据框中,其值为(仅作为示例)" Mayfield,BakerBaker Mayfield",我想减少它简单地说是#May; 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)

非常感谢提前!

2 个答案:

答案 0 :(得分:2)

这应该对你有用

# 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)
  )

答案 1 :(得分:0)

修改 我使用非常低效的for循环删除了我之前的答案,并将其更改为使用sapply来修改相关列的内容:

draft[4] <- sapply(4, function(x,y) substr(y[,x], 1, nchar(y[,x])/2+0.5), y=draft)

这将为您留下一个名为draft的已修改数据框,该数据框仅保留所有结构的其余部分,仅修改了播放器名称内容。