gpt4 book ai didi

r - 将单行转换为R中的多列

转载 作者:行者123 更新时间:2023-12-02 07:34:55 24 4
gpt4 key购买 nike

我已经从 NOAA 下载了长达一年的数据。问题是下载的数据中也有文本。所以,我找到了数据线的模式并将其提取出来。我使用的代码如下:

url <- "http://tidesandcurrents.noaa.gov/data_menu.shtml?bdate=20080101&edate=20081231&wl_sensor_hist=W2&relative=&datum=6&unit=0&shift=s&stn=8737048+Mobile+State+Docks%2C+AL&type=Historic+Tide+Data&format=View+Data"
download.file(url,destfile="data/mobile-docks-2008.dat")

mob2008 <- readLines("data/mobile-docks-2008.dat")
head(mob2008)

# Find pattern to separate data
pat <- grep(pattern="([0-9]+)\\s[0-9]",mob2008)

jd1 <- data.frame(mob2008[pat])
head(jd1)
> head(jd1)
mob2008.pat.
1 8737048 20080101 00:00 0.125 0.270
2 8737048 20080101 01:00 0.090 0.220
3 8737048 20080101 02:00 0.070 0.167
4 8737048 20080101 03:00 0.061 0.093
5 8737048 20080101 04:00 0.057 0.002
6 8737048 20080101 05:00 0.052 -0.108

如何在 R 中将单行更改为多列?似乎是一个微不足道的问题,但我坚持这一点。

问题是数据框 jd1 只有一列。我需要每行有 5 列。

最佳答案

R> jd1 = readLines(textConnection("1 8737048 20080101 00:00   0.125   0.270
+ 2 8737048 20080101 01:00 0.090 0.220
+ 3 8737048 20080101 02:00 0.070 0.167
+ 4 8737048 20080101 03:00 0.061 0.093
+ 5 8737048 20080101 04:00 0.057 0.002
+ 6 8737048 20080101 05:00 0.052 -0.108"))
R> jd1 = data.frame(mob2008.pat. = jd1, stringsAsFactors = FALSE)
R> jd1
mob2008.pat.
1 1 8737048 20080101 00:00 0.125 0.270
2 2 8737048 20080101 01:00 0.090 0.220
3 3 8737048 20080101 02:00 0.070 0.167
4 4 8737048 20080101 03:00 0.061 0.093
5 5 8737048 20080101 04:00 0.057 0.002
6 6 8737048 20080101 05:00 0.052 -0.108
R> dim(jd1)
[1] 6 1
R> jd2 = strsplit(jd1[[1]], " ")
R> jd2 = lapply(jd2, function(x) x[x != ""] )
R> jd2 = do.call(rbind, jd2)
R> data.frame(jd2)
X1 X2 X3 X4 X5 X6
1 1 8737048 20080101 00:00 0.125 0.270
2 2 8737048 20080101 01:00 0.090 0.220
3 3 8737048 20080101 02:00 0.070 0.167
4 4 8737048 20080101 03:00 0.061 0.093
5 5 8737048 20080101 04:00 0.057 0.002
6 6 8737048 20080101 05:00 0.052 -0.108

它有 6 列,但删除行号列很容易,并且会为您提供所需的 5 列。

关于r - 将单行转换为R中的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17634822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com