如何在csv中复制连续和跳过n行?
我每年都有csv文件,f.I.hourdata-2019.csv, 看起来是这样的:如何在csv中复制连续和跳过n行?,csv,sorting,cmd,skip,Csv,Sorting,Cmd,Skip,我每年都有csv文件,f.I.hourdata-2019.csv, 看起来是这样的: date,hour,temp 20181231,24,75 20190101,1,76 20190101,2,76 20190101,3,75 20190101,4,76 20190101,5,74 ......etc 我想做的是创建一个新文件,其中包含两行连续的块,然后跳过一些行。 F.I.我想知道一年中每9小时一小时的温度差,因此如果我跳过7行,新文件应该如下所示: 20190101,1,76 20190
date,hour,temp
20181231,24,75
20190101,1,76
20190101,2,76
20190101,3,75
20190101,4,76
20190101,5,74
......etc
我想做的是创建一个新文件,其中包含两行连续的块,然后跳过一些行。
F.I.我想知道一年中每9小时一小时的温度差,因此如果我跳过7行,新文件应该如下所示:
20190101,1,76
20190101,2,76
20190101,10,57
20190101,11,60
20190101,19,61
20190101,20,56
.........etc
我最初希望可以使用OpenOffice或LibreOffice calc模块,但只能找到类似的解决方案
还有一些面向对象的宏,我无法适应我的需要。
然后我想它可能更适合cmd脚本,但我也找不到一个合适的例子。
我所能做的是在calc中列出我想要的行,并借助于:
=间接(地址($L$1,K3,1,,“表1”))
当l1=1和k3=3时,应得到表1.C1,并为我解出它我将使用R:
setwd(dir = "c:/...") # set working directory.
d <- read.csv("hourdata-2019.csv") # read your datafile
rows <- c(2, 3, ...) # define the rows as needed, can be a formula
d[rows, ] # will give you the modified dataset
write.csv(x = d, file = "hourdata-2019 out.csv")
设置工作目录。
很好的挑战。这是一个纯批量解决方案:
@echo off
setlocal enabledelayedexpansion
REM following code to produce some data for testing:
(
echo date,hour,temp
echo 20181231,24,99
for /l %%a in (1,1,9) do @for /l %%b in (1,1,24) do @echo 2019010%%a,%%b,!random:~-2!
for /l %%a in (1,1,9) do @for /l %%b in (1,1,24) do @echo 2019011%%a,%%b,!random:~-2!
for /l %%a in (1,1,9) do @for /l %%b in (1,1,24) do @echo 2019012%%a,%%b,!random:~-2!
)>hourdata-test.csv
REM code to extract desired values
REM expected hour-pairs: 1,2 - 10,11 - 19,20 - 4,5 - 13,14 - 22,23 - 7,8 - 16,17 : repeat
(for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" hourdata-test.csv') do (
set /a "x=%%a %% 9"
if !x! == 3 echo %%b
if !x! == 4 echo %%b
))>ninerdata.csv
诀窍是使用行号,计算模9,然后简单地比较结果值。跳过前两行是通过打印模数3和4来实现的
一整年的数据应该不超过2秒。欢迎使用Stackoverflow。如果你澄清:你希望如何实现这一点,你可能会得到更好的答案。i、 在Excel中,或以编程方式(编程也是如此),使用哪种语言。。。?你到底想做什么?我不太明白该保留/跳过哪些行。你的问题是什么,到目前为止你尝试了什么,出了什么问题?例如,在R中寻址数据帧行?你能举一个WWWorking的例子吗?在你的Q中,似乎你只保留了第2、3、n1、n2行(n1和n2不是“整个”数据集的一部分)。这听起来像是一个数据库应用程序。将.csv文件加载到数据库(任何数据库)中,并对其编写SQL。对于cmd.exe.bat文件脚本,我认为这不是一个好的应用程序。