У меня есть фрейм данных x
со временем начала и смещения, которое я пытаюсь расширить до односекундных «эпох», считая в обратном направлении со времени второго начала. По сути, я хочу создавать начальные значения для каждой секунды и копировать информацию из других столбцов рядом с ней.
> x
Onset_Time Offset_Time qualifying not_dyadic_engagement dyadic_engagement child_engagement
1 1794.760 1799.298 separate engagement narrating(c)
2 1799.298 1810.809 none parallel engagement
3 1810.809 1819.318 separate engagement narrating(c)
4 1819.318 1838.103 none parallel engagement
5 1838.103 1844.576 separate engagement object engagement(c)
6 1844.576 1854.886 none parallel engagement
7 1854.886 1859.558 separate engagement attempted joint engagement(c)
8 1859.558 1861.760 separate engagement object engagement(c)
9 1861.760 1863.829 none parallel engagement
10 1863.829 1873.572 separate engagement object engagement(c)
11 1873.572 1876.208 none parallel engagement
12 1876.208 1881.980 separate engagement object engagement(c)
13 1881.980 1884.015 none parallel engagement
14 1884.015 1893.625 separate engagement unengaged(c)
15 1893.625 1901.400 separate engagement object engagement(c)
16 1901.400 1908.974 narration parallel engagement
17 1908.974 1924.856 separate engagement object engagement(c)
18 1924.856 1928.093 none parallel engagement
19 1928.093 1943.375 separate engagement object engagement(c)
20 1943.375 1945.744 none parallel engagement
21 1945.744 1953.718 separate engagement object engagement(c)
22 1953.718 1996.595 none parallel engagement
23 1996.595 2004.169 separate engagement object engagement(c)
24 2004.169 2007.105 none parallel engagement
25 2007.105 2012.544 separate engagement object engagement(c)
26 2012.544 2015.580 none parallel engagement
27 2015.580 2019.451 separate engagement attempted joint engagement(c)
28 2019.451 2021.553 none parallel engagement
29 2021.553 2028.593 separate engagement object engagement(c)
30 2028.593 2050.515 none parallel engagement
31 2050.482 2053.952 separate engagement narrating(c)
32 2053.952 2115.046 none parallel engagement
33 2115.046 2117.916 separate engagement object engagement(c)
34 2117.916 2120.118 separate engagement object engagement(c)
35 2120.118 2167.799 none parallel engagement
36 2167.799 2169.934 person engagement
37 2169.934 2179.244 none parallel engagement
У меня есть код для генерации значений времени, и я поместил его ниже:
z <- data.frame()
for(i in 1:nrow(x)){
for(j in 1:floor(x$Offset_Time[i] - x$Onset_Time[i])){
z[i,j] <- x$Onset_Time[i+1] - j
}
}
z <- t(z)
z <- t(z)
xx <- vector("numeric")
for(i in 1:ncol(z)){
x1 <- z[,i]
xx <- c(x1, xx)
}
xxx <- xx[!is.na(xx)]
xxx <- data.frame(unname(sort(xxx, decreasing = F)))
Результирующий вывод - это неназванный вектор, который выглядит следующим образом:
1 1795.298
2 1796.298
3 1797.298
4 1798.298
5 1799.809
6 1800.809
7 1801.809
8 1802.809
9 1803.809
10 1804.809
11 1805.809
12 1806.809
13 1807.809
14 1808.809
15 1809.809
16 1811.318
17 1812.318
18 1813.318
19 1814.318
20 1815.318
21 1816.318
22 1817.318
23 1818.318
24 1820.103
25 1821.103
26 1822.103
27 1823.103
28 1824.103
29 1825.103
30 1826.103
31 1827.103
32 1828.103
33 1829.103
34 1830.103
35 1831.103
36 1832.103
37 1833.103
38 1834.103
39 1835.103
40 1836.103
41 1837.103
42 1838.576
43 1839.576
44 1840.576
45 1841.576
46 1842.576
47 1843.576
48 1844.886
49 1845.886
50 1846.886
51 1847.886
52 1848.886
53 1849.886
54 1850.886
55 1851.886
56 1852.886
57 1853.886
58 1855.558
59 1856.558
60 1857.558
61 1858.558
62 1859.760
63 1860.760
64 1861.829
65 1862.829
66 1864.572
67 1865.572
68 1866.572
69 1867.572
70 1868.572
71 1869.572
72 1870.572
73 1871.572
74 1872.572
75 1874.208
76 1875.208
77 1876.980
78 1877.980
79 1878.980
80 1879.980
81 1880.980
82 1882.015
83 1883.015
84 1884.625
85 1885.625
86 1886.625
87 1887.625
88 1888.625
89 1889.625
90 1890.625
91 1891.625
92 1892.625
93 1894.400
94 1895.400
95 1896.400
96 1897.400
97 1898.400
98 1899.400
99 1900.400
100 1901.974
101 1902.974
102 1903.974
103 1904.974
104 1905.974
105 1906.974
106 1907.974
107 1909.856
108 1910.856
109 1911.856
110 1912.856
111 1913.856
112 1914.856
113 1915.856
114 1916.856
115 1917.856
116 1918.856
117 1919.856
118 1920.856
119 1921.856
120 1922.856
121 1923.856
122 1925.093
123 1926.093
124 1927.093
125 1928.375
126 1929.375
127 1930.375
128 1931.375
129 1932.375
130 1933.375
131 1934.375
132 1935.375
133 1936.375
134 1937.375
135 1938.375
136 1939.375
137 1940.375
138 1941.375
139 1942.375
140 1943.744
141 1944.744
142 1946.718
143 1947.718
144 1948.718
145 1949.718
146 1950.718
147 1951.718
148 1952.718
149 1954.595
150 1955.595
151 1956.595
152 1957.595
153 1958.595
154 1959.595
155 1960.595
156 1961.595
157 1962.595
158 1963.595
159 1964.595
160 1965.595
161 1966.595
162 1967.595
163 1968.595
164 1969.595
165 1970.595
166 1971.595
167 1972.595
168 1973.595
169 1974.595
170 1975.595
171 1976.595
172 1977.595
173 1978.595
174 1979.595
175 1980.595
176 1981.595
177 1982.595
178 1983.595
179 1984.595
180 1985.595
181 1986.595
182 1987.595
183 1988.595
184 1989.595
185 1990.595
186 1991.595
187 1992.595
188 1993.595
189 1994.595
190 1995.595
191 1997.169
192 1998.169
193 1999.169
194 2000.169
195 2001.169
196 2002.169
197 2003.169
198 2005.105
199 2006.105
200 2007.544
201 2008.544
202 2009.544
203 2010.544
204 2011.544
205 2012.580
206 2013.580
207 2014.580
208 2016.451
209 2017.451
210 2018.451
211 2019.553
212 2020.553
213 2021.593
214 2022.593
215 2023.593
216 2024.593
217 2025.593
218 2026.593
219 2027.593
220 2029.482
221 2030.482
222 2031.482
223 2032.482
224 2033.482
225 2034.482
226 2035.482
227 2036.482
228 2037.482
229 2038.482
230 2039.482
231 2040.482
232 2041.482
233 2042.482
234 2043.482
235 2044.482
236 2045.482
237 2046.482
238 2047.482
239 2048.482
240 2049.482
241 2050.952
242 2051.952
243 2052.952
244 2054.046
245 2055.046
246 2056.046
247 2057.046
248 2058.046
249 2059.046
250 2060.046
251 2061.046
252 2062.046
253 2063.046
254 2064.046
255 2065.046
256 2066.046
257 2067.046
258 2068.046
259 2069.046
260 2070.046
261 2071.046
262 2072.046
263 2073.046
264 2074.046
265 2075.046
266 2076.046
267 2077.046
268 2078.046
269 2079.046
270 2080.046
271 2081.046
272 2082.046
273 2083.046
274 2084.046
275 2085.046
276 2086.046
277 2087.046
278 2088.046
279 2089.046
280 2090.046
281 2091.046
282 2092.046
283 2093.046
284 2094.046
285 2095.046
286 2096.046
287 2097.046
288 2098.046
289 2099.046
290 2100.046
291 2101.046
292 2102.046
293 2103.046
294 2104.046
295 2105.046
296 2106.046
297 2107.046
298 2108.046
299 2109.046
300 2110.046
301 2111.046
302 2112.046
303 2113.046
304 2114.046
305 2115.916
306 2116.916
307 2118.118
308 2119.118
309 2120.799
310 2121.799
311 2122.799
312 2123.799
313 2124.799
314 2125.799
315 2126.799
316 2127.799
317 2128.799
318 2129.799
319 2130.799
320 2131.799
321 2132.799
322 2133.799
323 2134.799
324 2135.799
325 2136.799
326 2137.799
327 2138.799
328 2139.799
329 2140.799
330 2141.799
331 2142.799
332 2143.799
333 2144.799
334 2145.799
335 2146.799
336 2147.799
337 2148.799
338 2149.799
339 2150.799
340 2151.799
341 2152.799
342 2153.799
343 2154.799
344 2155.799
345 2156.799
346 2157.799
347 2158.799
348 2159.799
349 2160.799
350 2161.799
351 2162.799
352 2163.799
353 2164.799
354 2165.799
355 2166.799
356 2167.934
357 2168.934
Это не самый чистый код, но он дает мне вектор значений, который я хотел бы объединить с моими исходными данными кадр x
, со значениями вектора, чередующимися со временем начала, и копированием информации из нескольких факторов (например, child_engagement, non_dyadic_engagement). У кого-нибудь есть рекомендации для этого? Я также хотел бы получить отзыв о создании циклов для более чистого извлечения значений.