我有一个格式为"ABCDEFG,12:34:56:78:90:11"的字符串.我想将这两个用逗号分隔的值分成两个不同的字符串.我如何使用c语言在gcc中这样做.
我已经将文件中的数据导入到R中的数据框中.就像这样.
Name Count Category
A 100 Cat1
C 10 Cat2
D 40 Cat1
E 30 Cat3
H 3 Cat3
Z 20 Cat2
M 50 Cat10
Run Code Online (Sandbox Code Playgroud)
所以现在我想添加Category列,具体取决于Name列中的值.如果Name =(A,D),Category ='Cat1'等等.
这只是我给出的一个简单例子.我有大量的名称和类别,所以我想要一个紧凑的语法.我怎样才能做到这一点?
编辑:我已经更改了示例以更好地满足我的需求,因为名称可以是任何数字.很抱歉以前不太清楚.
我有两组文件夹,其文件具有相同的文件名和结构.文件夹结构是这样的:
\outputfolder\
|---\folder1\
| |---file1.txt
| |---file2.txt
|
|---\folder2\
|---file1.txt
|---file2.txt
Run Code Online (Sandbox Code Playgroud)
所以我需要做的是将这些文件夹中的所有文件(file1.txt与file1.txt等)组合(附加)到outputfolder中的另一个文件中.获取这些组合文件后,我还需要从所有这些组合文件中创建tar.gz文件.
如何在基于Linux的命令行环境中完成此操作?文件夹名称(folder1和folder2等)是可变的,因此需要给出但文件不需要,它应自动组合所有具有相同名称的文件.
此外,这些文件具有列名称的标题,因此我还需要在追加时删除它.
我需要从文本文件中解析HTTP标头中的用户代理,以确定浏览器,版本,操作系统以及可能的设备.这些行的例子很少:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Update a; AOL 6.0; Windows 98)
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Crazy Browser 2.0.0 Beta 1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; de-de) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en]
Run Code Online (Sandbox Code Playgroud)
由于这些字符串的多样性,我认为利用某人已经提供的经过验证且可靠的解析器会更好.我确实在PHP或java中找到了一些,但似乎没有为Perl找到一个.
有人可以告诉我任何这样的模块吗?
我正在尝试创建一个程序来计算数据文件列中出现的不同值.所以,如果列的可能值是A,B,C,那就像是这样的.输出类似于
A 456
B 234
C 344
Run Code Online (Sandbox Code Playgroud)
通过做这样的事情,我已经能够轻松获得A,B和C的运行计数
my %count;
for my $f (@ffile) {
open F, $f || die "Cannot open $f: $!";
while (<F>) {
chomp;
my @U = split / /;
$count{$U[2]}++;
}
}
foreach my $w (sort keys %count) {
printf $w\t$count{$w};
}
Run Code Online (Sandbox Code Playgroud)
例如,我在计算给定路径中的文件的第二列.
如何通过计数而不是键(或值A,B,C)对printf的输出进行排序 -
A 456
C 344
B 234
Run Code Online (Sandbox Code Playgroud) 我有一个子字符串列表,我需要在URL字符串列表中匹配.子串具有特殊字符,如'|','*',' - ','+'等.如果URL字符串包含该子字符串,我需要执行一些操作.但是现在让我们说我会在控制台中打印"TRUE".
我这样做是首先从子串列表中读取并将其放入哈希值.然后,我尝试对每个URL执行整个列表的简单Regexp匹配,直到找到匹配项.代码是这样的.
open my $ADS, '<', $ad_file or die "can't open $ad_file";
while(<$ADS>) {
chomp;
$ads_list_hash{$lines} = $_;
$lines ++;
}
close $ADS;
open my $IN, '<', $inputfile or die "can't open $inputfile";
my $first_line = <$IN>;
while(<$IN>) {
chomp;
my @hhfile = split /,/;
for my $count (0 .. $lines) {
if($hhfile[9] =~ /$ads_list_hash{$count}/) {
print "$hhfile[9]\t$ads_list_hash{$count}\n";
print "TRUE !\n";
last;
}
}
}
close $IN;
Run Code Online (Sandbox Code Playgroud)
问题是子串有很多特殊字符,导致匹配错误$hhfile[9] =~ /$ads_list_hash{$count}/.很少有例子;
+adverts/
.to/ad.php|
/addyn|*|adtech;
Run Code Online (Sandbox Code Playgroud)
我在这些行中得到一个错误,基本上说"量词在regexp中没有任何关系".我是否需要在正则表达式匹配语法中使用某些内容来避免这些?
我正在尝试添加一个显示区域名称的工具提示,当您将鼠标悬停在d3.js中的地图上时.输入是一个topojson文件,我已经能够成功生成带有区域边界的地图,并突出显示当前选定的区域.
对于提示我试图做类似的东西这个,但没有任何反应都没有.我用过的代码如下.工具提示代码即将结束.
var width = 960,
height = 600;
var projection = d3.geo.albers()
.center([87, 28])
.rotate([-85, 0])
.parallels([27, 32]);
var path = d3.geo.path()
.projection(projection);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
svg.append("rect")
.attr("width", width)
.attr("height", height);
var g = svg.append("g");
var div = d3.select("body").append("div")
.attr("class", "tooltip")
.style("opacity", 1e-6);
d3.json("data/nepal3.json", function(error, npl) {
var districts = topojson.feature(npl, npl.objects.nepal_districts);
projection
.scale(1)
.translate([0, 0]);
var b = path.bounds(districts),
s = .95 / Math.max((b[1][0] - b[0][0]) / width, (b[1][1] - b[0][1]) …Run Code Online (Sandbox Code Playgroud) 我有一个csv文件,其日期时间为unixtimestamp格式,毫秒和时区信息也以毫秒为单位.我想将其转换为更实用的日期时间格式,以便进一步处理.
例如,时间1437323953822和时区是-14400000.
我可以使用将时间戳转换为日期时间
datetime.datetime.fromtimestamp(1437323953822/1000)
Run Code Online (Sandbox Code Playgroud)
但是,我现在如何合并时区,即我所知道的-4 UTC时间.
(-14400000 / 1000 / 60 / 60) = -4
Run Code Online (Sandbox Code Playgroud)
如何使用此时区获取实际时间?
我有一个pandas数据框,其中一列表示另一列中的位置值是否在其下方的行中发生了变化.举个例子,
2013-02-05 19:45:00 (39.94, -86.159) True
2013-02-05 19:50:00 (39.94, -86.159) True
2013-02-05 19:55:00 (39.94, -86.159) False
2013-02-05 20:00:00 (39.777, -85.995) False
2013-02-05 20:05:00 (39.775, -85.978) True
2013-02-05 20:10:00 (39.775, -85.978) True
2013-02-05 20:15:00 (39.775, -85.978) False
2013-02-05 20:20:00 (39.94, -86.159) True
2013-02-05 20:30:00 (39.94, -86.159) False
Run Code Online (Sandbox Code Playgroud)
所以,我想要做的是逐行遍历这个数据帧并检查行False.然后(可能会添加另一列)在该地方花费的总"连续"时间.可以像上面的例子一样再次访问同一个地方.在这种情况下,它被视为一个单独的条件.所以,对于上面的例子,例如:
2013-02-05 19:45:00 (39.94, -86.159) True 0
2013-02-05 19:50:00 (39.94, -86.159) True 0
2013-02-05 19:55:00 (39.94, -86.159) False 15
2013-02-05 20:00:00 (39.777, -85.995) False 5
2013-02-05 20:05:00 (39.775, -85.978) True 0
2013-02-05 …Run Code Online (Sandbox Code Playgroud) 我有包含两列time且timezone具有事件时间戳的数据。例子是:
time timezone
1433848856453 10800000
Run Code Online (Sandbox Code Playgroud)
似乎时间戳在信息中也有小数秒。我不明白时区格式,但它必须是等效的 unix 格式。我也需要保留小数秒。我如何从那个变成类似 R 的东西?
2015-01-01 13:34:56.45 UTC
Run Code Online (Sandbox Code Playgroud)
注意:这个人类可读的日期不是显示的 unix 时间戳的实际转换值。
perl ×3
datetime ×2
python ×2
r ×2
bash ×1
c ×1
command-line ×1
count ×1
d3.js ×1
javascript ×1
key ×1
linux ×1
pandas ×1
parsing ×1
perl-module ×1
python-2.7 ×1
regex ×1
scripting ×1
sorting ×1
string ×1
timezone ×1
tooltip ×1
topojson ×1
user-agent ×1