Rui Barradas
2021-Jan-16 07:01 UTC
[R] Converting "day of year" to "year", "month" and "day"
Hello, Thanks for the data, it makes things easier. df1 <- read.table("Jibrin_data.txt", header = TRUE) #'data.frame': 168 obs. of 4 variables: # $ year: int 1998 1998 1998 1998 1998 1998 1998 1998 1998 1998 ... # $ day : int 1 2 3 4 5 6 7 8 9 10 ... # $ Hr : int 0 0 0 0 0 0 0 0 0 0 ... # $ SWS : num 344 346 356 332 302 329 395 359 471 392 ... Here is a simple way of converting the year and day of year columns to a column of class "Date". Like others have said, there are also CRAN packages to handle date/time data, my favorite being package lubridate, but base R can do it. df1$date <- as.Date(paste(df1$year, df1$day), format = "%Y %j", origin = "1998-01-01") head(df1) # year day Hr SWS date #1 1998 1 0 344 1998-01-01 #2 1998 2 0 346 1998-01-02 #3 1998 3 0 356 1998-01-03 #4 1998 4 0 332 1998-01-04 #5 1998 5 0 302 1998-01-05 #6 1998 6 0 329 1998-01-06 Hope this helps, Rui Barradas ?s 06:48 de 16/01/21, Jibrin Alhassan escreveu:> Hi Barradas > ?Sorry for the delay. Below is a section of my data. I have up to 1826 > covering 1998 to 2002 > year ? day Hr SWS > 1998 ? 1 ?0 ?344. > 1998 ? 2 ?0 ?346. > 1998 ? 3 ?0 ?356. > 1998 ? 4 ?0 ?332. > 1998 ? 5 ?0 ?302. > 1998 ? 6 ?0 ?329. > 1998 ? 7 ?0 ?395. > 1998 ? 8 ?0 ?359. > 1998 ? 9 ?0 ?471. > 1998 ?10 ?0 ?392. > 1998 ?11 ?0 ?346. > 1998 ?12 ?0 ?387. > 1998 ?13 ?0 ?393. > 1998 ?14 ?0 ?367. > 1998 ?15 ?0 ?320. > 1998 ?16 ?0 ?309. > 1998 ?17 ?0 ?341. > 1998 ?18 ?0 ?329. > 1998 ?19 ?0 ?322. > 1998 ?20 ?0 ?429. > 1998 ?21 ?0 ?433. > 1998 ?22 ?0 ?398. > 1998 ?23 ?0 ?393. > 1998 ?24 ?0 ?393. > 1998 ?25 ?0 ?423. > 1998 ?26 ?0 ?426. > 1998 ?27 ?0 ?429. > 1998 ?28 ?0 ?386. > 1998 ?29 ?0 ?381. > 1998 ?30 ?0 ?375. > 1998 ?31 ?0 ?365. > 1998 ?32 ?0 ?450. > 1998 ?33 ?0 ?381. > 1998 ?34 ?0 ?316. > 1998 ?35 ?0 ?351. > 1998 ?36 ?0 ?306. > 1998 ?37 ?0 ?312. > 1998 ?38 ?0 ?320. > 1998 ?39 ?0 ?339. > 1998 ?40 ?0 ?395. > 1998 ?41 ?0 ?429. > 1998 ?42 ?0 ?479. > 1998 ?43 ?0 ?495. > 1998 ?44 ?0 ?407. > 1998 ?45 ?0 ?358. > 1998 ?46 ?0 ?360. > 1998 ?47 ?0 ?382. > 1998 ?48 ?0 ?394. > 1998 ?49 ?0 ?393. > 1998 ?50 ?0 ?435. > 1998 ?51 ?0 ?408. > 1998 ?52 ?0 ?360. > 1998 ?53 ?0 ?372. > 1998 ?54 ?0 ?376. > 1998 ?55 ?0 ?379. > 1998 ?56 ?0 ?361. > 1998 ?57 ?0 ?333. > 1998 ?58 ?0 ?321. > 1998 ?59 ?0 ?344. > 1998 ?60 ?0 ?412. > 1998 ?61 ?0 ?428. > 1998 ?62 ?0 ?401. > 1998 ?63 ?0 ?369. > 1998 ?64 ?0 ?343. > 1998 ?65 ?0 ?330. > 1998 ?66 ?0 ?317. > 1998 ?67 ?0 ?296. > 1998 ?68 ?0 ?282. > 1998 ?69 ?0 ?404. > 1998 ?70 ?0 ?530. > 1998 ?71 ?0 ?525. > 1998 ?72 ?0 ?484. > 1998 ?73 ?0 ?430. > 1998 ?74 ?0 ?388. > 1998 ?75 ?0 ?347. > 1998 ?76 ?0 ?337. > 1998 ?77 ?0 ?342. > 1998 ?78 ?0 ?305. > 1998 ?79 ?0 ?329. > 1998 ?80 ?0 ?420. > 1998 ?81 ?0 ?564. > 1998 ?82 ?0 ?483. > 1998 ?83 ?0 ?385. > 1998 ?84 ?0 ?393. > 1998 ?85 ?0 ?437. > 1998 ?86 ?0 ?441. > 1998 ?87 ?0 ?434. > 1998 ?88 ?0 ?471. > 1998 ?89 ?0 ?429. > 1998 ?90 ?0 ?412. > 1998 ?91 ?0 ?370. > 1998 ?92 ?0 ?326. > 1998 ?93 ?0 ?357. > 1998 ?94 ?0 ?338. > 1998 ?95 ?0 ?380. > 1998 ?96 ?0 ?339. > 1998 ?97 ?0 ?312. > 1998 ?98 ?0 ?313. > 1998 ?99 ?0 ?327. > 1998 100 ?0 ?362. > 1998 101 ?0 ?358. > 1998 102 ?0 ?387. > 1998 103 ?0 ?397. > 1998 104 ?0 ?375. > 1998 105 ?0 ?350. > 1998 106 ?0 ?357. > 1998 107 ?0 ?472. > 1998 108 ?0 ?526. > 1998 109 ?0 ?396. > 1998 110 ?0 ?374. > 1998 111 ?0 ?376. > 1998 112 ?0 ?355. > 1998 113 ?0 ?343. > 1998 114 ?0 ?425. > 1998 115 ?0 ?426. > 1998 116 ?0 ?479. > 1998 117 ?0 ?469. > 1998 118 ?0 ?425. > 1998 119 ?0 ?344. > 1998 120 ?0 ?341. > 1998 121 ?0 ?426. > 1998 122 ?0 ?601. > 1998 123 ?0 ?476. > 1998 124 ?0 ?670. > 1998 125 ?0 ?585. > 1998 126 ?0 ?496. > 1998 127 ?0 ?479. > 1998 128 ?0 ?569. > 1998 129 ?0 ?531. > 1998 130 ?0 ?489. > 1998 131 ?0 ?484. > 1998 132 ?0 ?480. > 1998 133 ?0 ?393. > 1998 134 ?0 ?332. > 1998 135 ?0 ?327. > 1998 136 ?0 ?493. > 1998 137 ?0 ?493. > 1998 138 ?0 ?430. > 1998 139 ?0 ?396. > 1998 140 ?0 ?408. > 1998 141 ?0 ?416. > 1998 142 ?0 ?376. > 1998 143 ?0 ?375. > 1998 144 ?0 ?415. > 1998 145 ?0 ?407. > 1998 146 ?0 ?398. > 1998 147 ?0 ?352. > 1998 148 ?0 ?349. > 1998 149 ?0 ?517. > 1998 150 ?0 ?597. > 1998 151 ?0 ?480. > 1998 152 ?0 ?435. > 1998 153 ?0 ?408. > 1998 154 ?0 ?441. > 1998 155 ?0 ?397. > 1998 156 ?0 ?374. > 1998 157 ?0 ?413. > 1998 158 ?0 ?582. > 1998 159 ?0 ?513. > 1998 160 ?0 ?459. > 1998 161 ?0 ?466. > 1998 162 ?0 ?414. > 1998 163 ?0 ?354. > 1998 164 ?0 ?341. > 1998 165 ?0 ?343. > 1998 166 ?0 ?369. > 1998 167 ?0 ?411. > 1998 168 ?0 ?355. > Thanks > Jibrin > > On Fri, Jan 15, 2021 at 7:15 PM Rui Barradas <ruipbarradas at sapo.pt > <mailto:ruipbarradas at sapo.pt>> wrote: > > Hello, > > No dataset was attached. Like the posting guide says, > > No binary attachments except for PS, PDF, and some image and archive > formats (others are automatically stripped off because they can contain > malicious software). Files in other formats and larger ones should > rather be put on the web and have only their URLs posted. This way a > reader has the option to download them or not. > > > Can you post sample data? Please post the output of `dput(df)`. Or, if > it is too big the output of `dput(head(df, 20))`. (`df` is the name of > your dataset.) > > Hope this helps, > > Rui Barradas > > ?s 11:30 de 15/01/21, Jibrin Alhassan escreveu: > > Dear R users, > > I am very new to R software. I have solar wind speed data needed > for my > > work. How do I convert day in the year to year, month, and day with R > > software? I have used this code > > as.Date(0, origin = "1998-01-01") > > but it can only convert one day of the year at a time. Meanwhile, > I have up > > to the 1998-2002 data set. Attached is my data. > > Kindly help, please. > > Jibrin Alhassan > > ______________________________________________ > > R-help at r-project.org <mailto:R-help at r-project.org> mailing list > -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > >
Jibrin Alhassan
2021-Jan-17 15:12 UTC
[R] Converting "day of year" to "year", "month" and "day"
Hi Barradas, Thanks for your assistance. It has brought me closer to what I am looking for. I tried your code as shown below:> df1 <- read.table("SWSdata_1998_2002", header = TRUE) > df1$date <- as.Date(paste(df1$year, df1$day),format = "%Y %j",origin "1998-01-01") > head(df1)year day Hr SWS date 1 1998 1 0 344 1998-01-01 2 1998 2 0 346 1998-01-02 3 1998 3 0 356 1998-01-03 4 1998 4 0 332 1998-01-04 5 1998 5 0 302 1998-01-05 6 1998 6 0 329 1998-01-06 What I need is the last two columns only (SWS, date). The first 3 columns (year, day Hr should go). Your code produced only 6 datasets. My dataset is 1,826 from 1998 to 2002. How do I generate this at once? Many many thanks for your time. I have pasted below a section of my dataset for your guidance, please. Jibrin year day Hr SWS 1998 1 0 344. 1998 2 0 346. 1998 3 0 356. 1998 4 0 332. 1998 5 0 302. 1998 6 0 329. 1998 7 0 395. 1998 8 0 359. 1998 9 0 471. 1998 10 0 392. 1998 11 0 346. 1998 12 0 387. 1998 13 0 393. 1998 14 0 367. 1998 15 0 320. 1998 16 0 309. 1998 17 0 341. 1998 18 0 329. 1998 19 0 322. 1998 20 0 429. 1998 21 0 433. 1998 22 0 398. 1998 23 0 393. 1998 24 0 393. 1998 25 0 423. 1998 26 0 426. 1998 27 0 429. 1998 28 0 386. 1998 29 0 381. 1998 30 0 375. 1998 31 0 365. 1998 32 0 450. 1998 33 0 381. 1998 34 0 316. 1998 35 0 351. 1998 36 0 306. 1998 37 0 312. 1998 38 0 320. 1998 39 0 339. 1998 40 0 395. 1998 41 0 429. 1998 42 0 479. 1998 43 0 495. 1998 44 0 407. 1998 45 0 358. 1998 46 0 360. 1998 47 0 382. 1998 48 0 394. 1998 49 0 393. 1998 50 0 435. 1998 51 0 408. 1998 52 0 360. 1998 53 0 372. 1998 54 0 376. 1998 55 0 379. 1998 56 0 361. 1998 57 0 333. 1998 58 0 321. 1998 59 0 344. 1998 60 0 412. 1998 61 0 428. 1998 62 0 401. 1998 63 0 369. 1998 64 0 343. 1998 65 0 330. 1998 66 0 317. 1998 67 0 296. 1998 68 0 282. 1998 69 0 404. 1998 70 0 530. 1998 71 0 525. 1998 72 0 484. 1998 73 0 430. 1998 74 0 388. 1998 75 0 347. 1998 76 0 337. 1998 77 0 342. 1998 78 0 305. 1998 79 0 329. 1998 80 0 420. 1998 81 0 564. 1998 82 0 483. 1998 83 0 385. 1998 84 0 393. 1998 85 0 437. 1998 86 0 441. 1998 87 0 434. 1998 88 0 471. 1998 89 0 429. 1998 90 0 412. 1998 91 0 370. 1998 92 0 326. 1998 93 0 357. 1998 94 0 338. 1998 95 0 380. 1998 96 0 339. 1998 97 0 312. 1998 98 0 313. 1998 99 0 327. 1998 100 0 362. 1998 101 0 358. 1998 102 0 387. 1998 103 0 397. 1998 104 0 375. 1998 105 0 350. 1998 106 0 357. 1998 107 0 472. 1998 108 0 526. 1998 109 0 396. 1998 110 0 374. 1998 111 0 376. 1998 112 0 355. 1998 113 0 343. 1998 114 0 425. 1998 115 0 426. 1998 116 0 479. 1998 117 0 469. 1998 118 0 425. 1998 119 0 344. 1998 120 0 341. 1998 121 0 426. 1998 122 0 601. 1998 123 0 476. 1998 124 0 670. 1998 125 0 585. 1998 126 0 496. 1998 127 0 479. 1998 128 0 569. 1998 129 0 531. 1998 130 0 489. 1998 131 0 484. 1998 132 0 480. 1998 133 0 393. 1998 134 0 332. 1998 135 0 327. 1998 136 0 493. 1998 137 0 493. 1998 138 0 430. 1998 139 0 396. 1998 140 0 408. 1998 141 0 416. 1998 142 0 376. 1998 143 0 375. 1998 144 0 415. 1998 145 0 407. 1998 146 0 398. 1998 147 0 352. 1998 148 0 349. 1998 149 0 517. 1998 150 0 597. 1998 151 0 480. 1998 152 0 435. 1998 153 0 408. 1998 154 0 441. 1998 155 0 397. 1998 156 0 374. 1998 157 0 413. 1998 158 0 582. 1998 159 0 513. 1998 160 0 459. 1998 161 0 466. 1998 162 0 414. 1998 163 0 354. 1998 164 0 341. 1998 165 0 343. 1998 166 0 369. 1998 167 0 411. 1998 168 0 355. 1998 169 0 333. 1998 170 0 443. 1998 171 0 426. 1998 172 0 419. 1998 173 0 404. 1998 174 0 387. 1998 175 0 460. 1998 176 0 447. 1998 177 0 469. 1998 178 0 447. 1998 179 0 389. 1998 180 0 375. 1998 181 0 354. 1998 182 0 316. 1998 183 0 369. 1998 184 0 410. 1998 185 0 406. 1998 186 0 477. 1998 187 0 583. 1998 188 0 458. 1998 189 0 386. 1998 190 0 342. 1998 191 0 333. 1998 192 0 369. 1998 193 0 406. 1998 194 0 375. 1998 195 0 332. 1998 196 0 310. 1998 197 0 528. 1998 198 0 530. 1998 199 0 387. 1998 200 0 385. 1998 201 0 349. 1998 202 0 409. 1998 203 0 399. 1998 204 0 619. 1998 205 0 658. 1998 206 0 581. 1998 207 0 445. 1998 208 0 370. 1998 209 0 326. 1998 210 0 334. 1998 211 0 384. 1998 212 0 423. 1998 213 0 412. 1998 214 0 404. 1998 215 0 370. 1998 216 0 384. 1998 217 0 383. 1998 218 0 378. 1998 219 0 461. 1998 220 0 460. 1998 221 0 400. 1998 222 0 447. 1998 223 0 373. 1998 224 0 379. 1998 225 0 374. 1998 226 0 374. 1998 227 0 391. 1998 228 0 348. 1998 229 0 303. 1998 230 0 279. 1998 231 0 312. 1998 232 0 331. 1998 233 0 298. 1998 234 0 341. 1998 235 0 493. 1998 236 0 436. 1998 237 0 400. 1998 238 0 633. 1998 239 0 630. 1998 240 0 583. 1998 241 0 547. 1998 242 0 550. 1998 243 0 499. 1998 244 0 444. 1998 245 0 427. 1998 246 0 401. On Sat, Jan 16, 2021 at 8:01 AM Rui Barradas <ruipbarradas at sapo.pt> wrote:> Hello, > > Thanks for the data, it makes things easier. > > df1 <- read.table("Jibrin_data.txt", header = TRUE) > #'data.frame': 168 obs. of 4 variables: > # $ year: int 1998 1998 1998 1998 1998 1998 1998 1998 1998 1998 ... > # $ day : int 1 2 3 4 5 6 7 8 9 10 ... > # $ Hr : int 0 0 0 0 0 0 0 0 0 0 ... > # $ SWS : num 344 346 356 332 302 329 395 359 471 392 ... > > Here is a simple way of converting the year and day of year columns to a > column of class "Date". > Like others have said, there are also CRAN packages to handle date/time > data, my favorite being package lubridate, but base R can do it. > > > df1$date <- as.Date(paste(df1$year, df1$day), > format = "%Y %j", > origin = "1998-01-01") > > head(df1) > # year day Hr SWS date > #1 1998 1 0 344 1998-01-01 > #2 1998 2 0 346 1998-01-02 > #3 1998 3 0 356 1998-01-03 > #4 1998 4 0 332 1998-01-04 > #5 1998 5 0 302 1998-01-05 > #6 1998 6 0 329 1998-01-06 > > > Hope this helps, > > Rui Barradas > > > ?s 06:48 de 16/01/21, Jibrin Alhassan escreveu: > > Hi Barradas > > Sorry for the delay. Below is a section of my data. I have up to 1826 > > covering 1998 to 2002 > > year day Hr SWS > > 1998 1 0 344. > > 1998 2 0 346. > > 1998 3 0 356. > > 1998 4 0 332. > > 1998 5 0 302. > > 1998 6 0 329. > > 1998 7 0 395. > > 1998 8 0 359. > > 1998 9 0 471. > > 1998 10 0 392. > > 1998 11 0 346. > > 1998 12 0 387. > > 1998 13 0 393. > > 1998 14 0 367. > > 1998 15 0 320. > > 1998 16 0 309. > > 1998 17 0 341. > > 1998 18 0 329. > > 1998 19 0 322. > > 1998 20 0 429. > > 1998 21 0 433. > > 1998 22 0 398. > > 1998 23 0 393. > > 1998 24 0 393. > > 1998 25 0 423. > > 1998 26 0 426. > > 1998 27 0 429. > > 1998 28 0 386. > > 1998 29 0 381. > > 1998 30 0 375. > > 1998 31 0 365. > > 1998 32 0 450. > > 1998 33 0 381. > > 1998 34 0 316. > > 1998 35 0 351. > > 1998 36 0 306. > > 1998 37 0 312. > > 1998 38 0 320. > > 1998 39 0 339. > > 1998 40 0 395. > > 1998 41 0 429. > > 1998 42 0 479. > > 1998 43 0 495. > > 1998 44 0 407. > > 1998 45 0 358. > > 1998 46 0 360. > > 1998 47 0 382. > > 1998 48 0 394. > > 1998 49 0 393. > > 1998 50 0 435. > > 1998 51 0 408. > > 1998 52 0 360. > > 1998 53 0 372. > > 1998 54 0 376. > > 1998 55 0 379. > > 1998 56 0 361. > > 1998 57 0 333. > > 1998 58 0 321. > > 1998 59 0 344. > > 1998 60 0 412. > > 1998 61 0 428. > > 1998 62 0 401. > > 1998 63 0 369. > > 1998 64 0 343. > > 1998 65 0 330. > > 1998 66 0 317. > > 1998 67 0 296. > > 1998 68 0 282. > > 1998 69 0 404. > > 1998 70 0 530. > > 1998 71 0 525. > > 1998 72 0 484. > > 1998 73 0 430. > > 1998 74 0 388. > > 1998 75 0 347. > > 1998 76 0 337. > > 1998 77 0 342. > > 1998 78 0 305. > > 1998 79 0 329. > > 1998 80 0 420. > > 1998 81 0 564. > > 1998 82 0 483. > > 1998 83 0 385. > > 1998 84 0 393. > > 1998 85 0 437. > > 1998 86 0 441. > > 1998 87 0 434. > > 1998 88 0 471. > > 1998 89 0 429. > > 1998 90 0 412. > > 1998 91 0 370. > > 1998 92 0 326. > > 1998 93 0 357. > > 1998 94 0 338. > > 1998 95 0 380. > > 1998 96 0 339. > > 1998 97 0 312. > > 1998 98 0 313. > > 1998 99 0 327. > > 1998 100 0 362. > > 1998 101 0 358. > > 1998 102 0 387. > > 1998 103 0 397. > > 1998 104 0 375. > > 1998 105 0 350. > > 1998 106 0 357. > > 1998 107 0 472. > > 1998 108 0 526. > > 1998 109 0 396. > > 1998 110 0 374. > > 1998 111 0 376. > > 1998 112 0 355. > > 1998 113 0 343. > > 1998 114 0 425. > > 1998 115 0 426. > > 1998 116 0 479. > > 1998 117 0 469. > > 1998 118 0 425. > > 1998 119 0 344. > > 1998 120 0 341. > > 1998 121 0 426. > > 1998 122 0 601. > > 1998 123 0 476. > > 1998 124 0 670. > > 1998 125 0 585. > > 1998 126 0 496. > > 1998 127 0 479. > > 1998 128 0 569. > > 1998 129 0 531. > > 1998 130 0 489. > > 1998 131 0 484. > > 1998 132 0 480. > > 1998 133 0 393. > > 1998 134 0 332. > > 1998 135 0 327. > > 1998 136 0 493. > > 1998 137 0 493. > > 1998 138 0 430. > > 1998 139 0 396. > > 1998 140 0 408. > > 1998 141 0 416. > > 1998 142 0 376. > > 1998 143 0 375. > > 1998 144 0 415. > > 1998 145 0 407. > > 1998 146 0 398. > > 1998 147 0 352. > > 1998 148 0 349. > > 1998 149 0 517. > > 1998 150 0 597. > > 1998 151 0 480. > > 1998 152 0 435. > > 1998 153 0 408. > > 1998 154 0 441. > > 1998 155 0 397. > > 1998 156 0 374. > > 1998 157 0 413. > > 1998 158 0 582. > > 1998 159 0 513. > > 1998 160 0 459. > > 1998 161 0 466. > > 1998 162 0 414. > > 1998 163 0 354. > > 1998 164 0 341. > > 1998 165 0 343. > > 1998 166 0 369. > > 1998 167 0 411. > > 1998 168 0 355. > > Thanks > > Jibrin > > > > On Fri, Jan 15, 2021 at 7:15 PM Rui Barradas <ruipbarradas at sapo.pt > > <mailto:ruipbarradas at sapo.pt>> wrote: > > > > Hello, > > > > No dataset was attached. Like the posting guide says, > > > > No binary attachments except for PS, PDF, and some image and archive > > formats (others are automatically stripped off because they can > contain > > malicious software). Files in other formats and larger ones should > > rather be put on the web and have only their URLs posted. This way a > > reader has the option to download them or not. > > > > > > Can you post sample data? Please post the output of `dput(df)`. Or, > if > > it is too big the output of `dput(head(df, 20))`. (`df` is the name > of > > your dataset.) > > > > Hope this helps, > > > > Rui Barradas > > > > ?s 11:30 de 15/01/21, Jibrin Alhassan escreveu: > > > Dear R users, > > > I am very new to R software. I have solar wind speed data needed > > for my > > > work. How do I convert day in the year to year, month, and day > with R > > > software? I have used this code > > > as.Date(0, origin = "1998-01-01") > > > but it can only convert one day of the year at a time. Meanwhile, > > I have up > > > to the 1998-2002 data set. Attached is my data. > > > Kindly help, please. > > > Jibrin Alhassan > > > ______________________________________________ > > > R-help at r-project.org <mailto:R-help at r-project.org> mailing list > > -- To UNSUBSCRIBE and more, see > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > PLEASE do read the posting guide > > http://www.R-project.org/posting-guide.html > > > and provide commented, minimal, self-contained, reproducible code. > > > > > >[[alternative HTML version deleted]]