我有一个如下所示的外部数据文件,没有分隔符:
PLAYER TEAM STUFF1 STUFF2
Jim Smith NYY 100 200
Jerry Johnson Jr. PHI 100 200
Andrew C. James STL 200 200
A. J. Williams CWS 100 200
Felix Rodriguez BAL 100 100
我怎样才能阅读这个文件?我正在考虑readLines
在三个连续大写字母的任何序列之前使用和拆分字符串。但是,我不知道该怎么做。
如果只有团队名称的第一个字母大写怎么办?
下面是一个类似的文件,其中名称后跟一列数字。我可以使用以下代码读取这些数据:
TEAM STUFF1 STUFF2
New York Yankees 100 200
Philadelphia Phillies 100 200
Boston Red Sox 200 200
Los Angeles Angels 100 200
Chicago White Sox 100 100
Chicago Cubs 200 100
New York Mets 200 200
San Francisco Giants 100 300
Minnesota Twins 100 300
St. Louis Cardinals 200 300
这是读取第二个数据集的代码:
setwd('c:/users/mmiller21/simple R programs/')
my.data3 <- readLines('team.names.with.spaces.txt')
# split between desired columns
my.data4 <- do.call(rbind, strsplit(my.data3, split = "(?<=[ ])(?=[0-9])", perl = T))
# returns string w/o leading or trailing whitespace
# This function is not mine and was found on Stack Overflow
trim <- function (x) gsub("^\\s+|\\s+$", "", x)
my.data5 <- trim(my.data4)
# remove header
my.data6 <- my.data5[-1,]
# convert to data.frame
my.data6 <- data.frame(my.data6, stringsAsFactors = FALSE)
my.data6[,2] <- as.numeric(my.data6[,2])
my.data6[,3] <- as.numeric(my.data6[,3])
my.data6
X1 X2 X3
1 New York Yankees 100 200
2 Philadelphia Phillies 100 200
3 Boston Red Sox 200 200
4 Los Angeles Angels 100 200
5 Chicago White Sox 100 100
6 Chicago Cubs 200 100
7 New York Mets 200 200
8 San Francisco Giants 100 300
9 Minnesota Twins 100 300
10 St. Louis Cardinals 200 300
谢谢你的任何建议。我更喜欢 base R 中的解决方案。