在R(studio)中,我已經嘗試了許多次將日期存盤到turning_point_dates資料框中的迭代,但我只能讓它存盤回圈數字。我可以在找到每個日期時將其列印出來,但還不能存盤它們。
dates = data. frame(Date = seq(from = as. Date("2002-06-01"), to = as. 日期("2011-09-30")。 由= 'day'))
nums = c(98。 99,100, 101。 102,103, 104。 105,106, 107)
dataframe_of_numbers = data.frame(nums)
mat = matrix(ncol=0。 nrow=0)。
turning_point_dates = data.frame(/span>mat)
for (i in 1: nrow(dataframe_of_numbers)){
print(dates$Date[dataframe_of_numbers[/span>i, ]])
turning_point_dates[/span>i。 ] = dates$Date[dataframe_of_numbers[/span>i。 ]]
}
轉折點_日期
我怎樣才能將被回圈使用的實際日期存盤到turning_point_dates資料框中?
turning_point_dates放出一個資料框,看起來像下面這樣。 描述:df [10 x 0]
1
2
3
4
5
6
1-10的10行
當我想要一個像這樣的資料框架時:
"2002-09-06 "的資料框架。
"2002-09-06" "2002-09-07" "2002-09-08" "2002-09-09" "2002-09-10" "2002-09-11" "2002-09-12" "2002-09-13" "2002-09-14" "2002-09-15"
uj5u.com熱心網友回復:
這有點不清楚,但是如果你想最終得到一個較小的資料框,其中只有與nums中的行號相對應的日期,你不需要使用一個回圈。您只需用num對資料框進行子集,如下圖所示。
我還建議使用一個tibble而不是一個基本的data.frame,因為subsetting一個tibble回傳一個tibble,但是subsetting一個data.frame回傳一個vector。
library(tibble)
日期<- tibble:: tibble(Date = seq(from = as. 日期("2002-06-01"),
to = as.Date("2011-09-30"),
由= 'day'))
nums < - c(98, 99。 100,101, 102。 103,104,105。 106,107)
dates_subsetted <- dates[nums,]
這也可以用一個回圈來完成,但在我看來,這要笨得多。如果你有大量的資料,它幾乎肯定會慢得多。
但既然有人問起:
library(dplyr)
#為我們要提取的值設定另一個tibble。
dates_looped <- tibble::tibble()
# loop through each row of the input, add that row if
for (i in 1: nrow(dates)){
if (i %in% nums) {
dates_looped <- dplyr:: bind_rows(dates_looped, dates[i,] )
}
}
dates_looped和dates_subsetted是一樣的,但是制作dates_subsetted只花了一行代碼,運行速度會快很多倍。
uj5u.com熱心網友回復:
我不認為你需要一個回圈來做這個。以下是我的做法:
dates <- data. frame(Date = seq(from = as. Date("2002-06-01"), to = as. 日期("2011-09-30")。 由= 'day'))
nums = c(98。 99,100, 101。 102,103, 104。 105,106, 107)
turning_point_dates <- data. frame(nums, dates = dates$Date[nums])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/306877.html
標籤:
上一篇:<p>我有一個看起來像這樣的表(1個例子--總共有200萬行):</p> <preclass="lang-rs-code-block"><
