由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 一个搞统计的对C#的第一印象
相关主题
Shuffle performance (C#)c++ template中如何判断类型
如何在C++下, 把一个DataColumn 中的值赋给一个_variant_t变量?how to get time() result in millisecond precision? (转载)
怎么把一个Map放到queue里? (转载)水平表头
如何 测量某个函数的运行时间?C# 和 SQLite 连接的问题
C++ 问题紧急求救谁给推荐一个好的javascript/jquery table库
Go 1.5 这个 low latency GC 到底有多厉害?Google Cloud Platform for $500 (转载)
how to get time in milliseconds since 1970 (linux)nodetime 是个好玩意儿
how to get time in milliseconds since 1970 on Linux贡献一个很好的模板网站
相关话题的讨论汇总
话题: c#话题: linq话题: table话题: csv话题: data
进入Programming版参与讨论
1 (共1页)
D**u
发帖数: 288
1
我是统计出身,语言的知识很有限,仅仅从我的个人感受,分享一些心得,并希望得到
一些指点。
先说一句,我觉得C#对于初学者还是挺freindly的。
我是做统计模型的,平常都是用SAS,偶尔用用R和python。但是最近一个客户需要我们
parsing data with C#。
当时一听我的第一反应就是这TM也太难了。
我对C++和java的认识只停留于做一个students record table,算一个Fabinocci数。
从来没用过C#,更不知道怎么用C++,java或者C#去subset一个100GB的 CSV或是txt
table,勿论再去做对Col和Row做运算。
然后这两天我就开始在youtube上学一些C#的语句,第一感觉对于简单的I/O,包括read
/write files,C#比C++,和java的语句要简单直观很多,这对于一个经常用sas的人来
说是一件很幸福的事情。还有就是,我很喜欢C# 的static void Main,我记得印象中C
++ 老是int main 总让我觉得怪怪的,呵呵,我知道这个比较很弱智,可是实在认识有
限。
可是现在问题来了,
SAS,R或者python都是先create一个data table,然后读入memory中运算,然后output
到一个文件或者data table。
而在C#是怎样在一个csv table中 select 几个column或者row 然后做运算在output到
一个table中呢?
我看到了一个foreach function,但是这个跟sas和R中的data matrix computation的思
维方式差别挺大的。
唉,发现还是离solution很遥远
胡乱码了一通,全当一个菜鸟的呓语,不过还要强调一下,C# 的 files I/O真的不错。
b*****y
发帖数: 130
2
string.split()
c*********e
发帖数: 16335
3
果然是新手。c#和java是一个级别的,说它简单。。。

read

【在 D**u 的大作中提到】
: 我是统计出身,语言的知识很有限,仅仅从我的个人感受,分享一些心得,并希望得到
: 一些指点。
: 先说一句,我觉得C#对于初学者还是挺freindly的。
: 我是做统计模型的,平常都是用SAS,偶尔用用R和python。但是最近一个客户需要我们
: parsing data with C#。
: 当时一听我的第一反应就是这TM也太难了。
: 我对C++和java的认识只停留于做一个students record table,算一个Fabinocci数。
: 从来没用过C#,更不知道怎么用C++,java或者C#去subset一个100GB的 CSV或是txt
: table,勿论再去做对Col和Row做运算。
: 然后这两天我就开始在youtube上学一些C#的语句,第一感觉对于简单的I/O,包括read

a9
发帖数: 21638
4
dataset

read
中C
output
错。

【在 D**u 的大作中提到】
: 我是统计出身,语言的知识很有限,仅仅从我的个人感受,分享一些心得,并希望得到
: 一些指点。
: 先说一句,我觉得C#对于初学者还是挺freindly的。
: 我是做统计模型的,平常都是用SAS,偶尔用用R和python。但是最近一个客户需要我们
: parsing data with C#。
: 当时一听我的第一反应就是这TM也太难了。
: 我对C++和java的认识只停留于做一个students record table,算一个Fabinocci数。
: 从来没用过C#,更不知道怎么用C++,java或者C#去subset一个100GB的 CSV或是txt
: table,勿论再去做对Col和Row做运算。
: 然后这两天我就开始在youtube上学一些C#的语句,第一感觉对于简单的I/O,包括read

D**u
发帖数: 288
5
dataset is great, 这个是把data read in memory么,如果超过内存大小的csv table
怎么办,谢谢?

【在 a9 的大作中提到】
: dataset
:
: read
: 中C
: output
: 错。

D**u
发帖数: 288
6
IDataReader!
read and process data line by line 这个可以算是 Row computaion而且不受memory
size限制了。
hoho,以后small table 用dataset, large table用IDataReader。
s*****n
发帖数: 5488
7
linq is your friend. google linq csv.

read

【在 D**u 的大作中提到】
: 我是统计出身,语言的知识很有限,仅仅从我的个人感受,分享一些心得,并希望得到
: 一些指点。
: 先说一句,我觉得C#对于初学者还是挺freindly的。
: 我是做统计模型的,平常都是用SAS,偶尔用用R和python。但是最近一个客户需要我们
: parsing data with C#。
: 当时一听我的第一反应就是这TM也太难了。
: 我对C++和java的认识只停留于做一个students record table,算一个Fabinocci数。
: 从来没用过C#,更不知道怎么用C++,java或者C#去subset一个100GB的 CSV或是txt
: table,勿论再去做对Col和Row做运算。
: 然后这两天我就开始在youtube上学一些C#的语句,第一感觉对于简单的I/O,包括read

D**u
发帖数: 288
8
This is getting more and more interesting!
With Linq, now I can do column computation in CSV tables.

【在 s*****n 的大作中提到】
: linq is your friend. google linq csv.
:
: read

s*****n
发帖数: 5488
9
see this link:
http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library

【在 D**u 的大作中提到】
: This is getting more and more interesting!
: With Linq, now I can do column computation in CSV tables.

D**u
发帖数: 288
10
Thanks a lot, will spend some time dig into it.

【在 s*****n 的大作中提到】
: see this link:
: http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library

相关主题
Go 1.5 这个 low latency GC 到底有多厉害?c++ template中如何判断类型
how to get time in milliseconds since 1970 (linux)how to get time() result in millisecond precision? (转载)
how to get time in milliseconds since 1970 on Linux水平表头
进入Programming版参与讨论
z****e
发帖数: 54598
11
只要你花钱了
没有什么软件是不friendly的
z****e
发帖数: 54598
12
另外,sas的程序可以直接转成pure java代码
有专门的公司在做这事,花点钱就是了
如果你们的系统很稳定的话,直接转成java代码后就可以省下大笔的license fee
当然如果你们的系统不稳定的话,需要维护改造倒腾的话
那还是交钱吧
e*******i
发帖数: 80
13
search "parsing csv file in C#". There are lots of sample codes, even some
small useful library for this purpose. C# is truly a good, high-level,
application development language, not just for beginners.
k***g
发帖数: 7244
14
use linq . if u have terabytes data, then k is much much faster. only take
milliseconds to do row or column computation.

read

【在 D**u 的大作中提到】
: 我是统计出身,语言的知识很有限,仅仅从我的个人感受,分享一些心得,并希望得到
: 一些指点。
: 先说一句,我觉得C#对于初学者还是挺freindly的。
: 我是做统计模型的,平常都是用SAS,偶尔用用R和python。但是最近一个客户需要我们
: parsing data with C#。
: 当时一听我的第一反应就是这TM也太难了。
: 我对C++和java的认识只停留于做一个students record table,算一个Fabinocci数。
: 从来没用过C#,更不知道怎么用C++,java或者C#去subset一个100GB的 CSV或是txt
: table,勿论再去做对Col和Row做运算。
: 然后这两天我就开始在youtube上学一些C#的语句,第一感觉对于简单的I/O,包括read

T*U
发帖数: 22634
15
linq require 3.5 +, 4.0 u can do parallel linq.

take

【在 k***g 的大作中提到】
: use linq . if u have terabytes data, then k is much much faster. only take
: milliseconds to do row or column computation.
:
: read

D**u
发帖数: 288
16
what is k?

take

【在 k***g 的大作中提到】
: use linq . if u have terabytes data, then k is much much faster. only take
: milliseconds to do row or column computation.
:
: read

d**********1
发帖数: 569
17
linq, lambda还有新的4.5的async语法糖才是统计和数据筛选的神器!
x*****b
发帖数: 271
18
Python可以很简单地完成你说的这些task。为什么一定要C#?
H*******g
发帖数: 6997
19
能不用DATATABLE就别用,那个效率太低。
试试看linq asparallel

read

【在 D**u 的大作中提到】
: 我是统计出身,语言的知识很有限,仅仅从我的个人感受,分享一些心得,并希望得到
: 一些指点。
: 先说一句,我觉得C#对于初学者还是挺freindly的。
: 我是做统计模型的,平常都是用SAS,偶尔用用R和python。但是最近一个客户需要我们
: parsing data with C#。
: 当时一听我的第一反应就是这TM也太难了。
: 我对C++和java的认识只停留于做一个students record table,算一个Fabinocci数。
: 从来没用过C#,更不知道怎么用C++,java或者C#去subset一个100GB的 CSV或是txt
: table,勿论再去做对Col和Row做运算。
: 然后这两天我就开始在youtube上学一些C#的语句,第一感觉对于简单的I/O,包括read

H*******g
发帖数: 6997
20
python能比C#需要的代码还少么,呵呵。

【在 x*****b 的大作中提到】
: Python可以很简单地完成你说的这些task。为什么一定要C#?
相关主题
C# 和 SQLite 连接的问题nodetime 是个好玩意儿
谁给推荐一个好的javascript/jquery table库贡献一个很好的模板网站
Google Cloud Platform for $500 (转载)August 2015 go 1.5 跳票了
进入Programming版参与讨论
r*******n
发帖数: 3020
21
python 处理这种事情很擅长,代码会少,关键是易学易用

【在 H*******g 的大作中提到】
: python能比C#需要的代码还少么,呵呵。
r****l
发帖数: 50
22
C# 处理统计问题?
有点意思!
D**u
发帖数: 288
23
虽然client要C#, 但确实可以先用python处理data再input到C#中去。
我想我们决定用C#,一是client的要求,二是C#可能比python更容易hide scource
code( obfuscator),让reengineer source code 更难一点(我相信所有的code 都
是可以reengineer的)
d**********1
发帖数: 569
24
BasisComponentDict =
(from a in BasisComponentValues
where CheckMonth(a.StartMonth, a.Month, a.EndMonth)
group a by a.Key into g
select new { Key = g.Key, Sum = g.Sum(o => o.Value) })
.ToDictionary(gdc => gdc.Key.ToUpper(), gdc => gdc.Sum);
这个是工作里面做字典的一个例子,挺好用的。
D**u
发帖数: 288
25
这个例子看起来很fancy啊,查了一下,Enumerable.ToDictionary
发现Enumerable Class有很多可以利用的



【在 d**********1 的大作中提到】
: BasisComponentDict =
: (from a in BasisComponentValues
: where CheckMonth(a.StartMonth, a.Month, a.EndMonth)
: group a by a.Key into g
: select new { Key = g.Key, Sum = g.Sum(o => o.Value) })
: .ToDictionary(gdc => gdc.Key.ToUpper(), gdc => gdc.Sum);
: 这个是工作里面做字典的一个例子,挺好用的。

c**********3
发帖数: 647
26
# 怎么读,谢谢..
d**********x
发帖数: 4083
27
夏普

【在 c**********3 的大作中提到】
: # 怎么读,谢谢..
c**********3
发帖数: 647
28
多谢,赠包子一枚

【在 d**********x 的大作中提到】
: 夏普
k***g
发帖数: 7244
29
处理百亿千亿行数据使用的语言和数据库,主要用在高频交易上,k 语言很简洁,譬如
列出从1 到 N 之间所有的 prime number 只需要: (!N)@&{&/x!/:2_!x}'!N 就可以了

【在 D**u 的大作中提到】
: what is k?
:
: take

G***l
发帖数: 355
30
这一堆@@##$$!!的是啥,比perl还夸张啊。



【在 k***g 的大作中提到】
: 处理百亿千亿行数据使用的语言和数据库,主要用在高频交易上,k 语言很简洁,譬如
: 列出从1 到 N 之间所有的 prime number 只需要: (!N)@&{&/x!/:2_!x}'!N 就可以了

相关主题
Which is the most powerful OS for programmers?如何在C++下, 把一个DataColumn 中的值赋给一个_variant_t变量?
help- date is incorrectly converted when read csv using vba in excel怎么把一个Map放到queue里? (转载)
Shuffle performance (C#)如何 测量某个函数的运行时间?
进入Programming版参与讨论
z****e
发帖数: 54598
31
没说的,学术版讨论



【在 k***g 的大作中提到】
: 处理百亿千亿行数据使用的语言和数据库,主要用在高频交易上,k 语言很简洁,譬如
: 列出从1 到 N 之间所有的 prime number 只需要: (!N)@&{&/x!/:2_!x}'!N 就可以了

n******t
发帖数: 4406
32
其实K很好读。比大部分程序都好读。
这东西有点像现代汉语,语法其实简单。但是刚开始学比较难。背的多一点。
所有的K都是自右向左读
!N就是生成0.....N-1的向量。
然后{&/x!/:2_!x} 是一个函数,'是adverb,就是把函数apply到向量的每一个element
上面。
2_!x 就是0..N-1去掉前面两个元素,就是2....N-1
/: 又是adverb叫做each right,然后!作为binary operator就是取余。这样
x!/:2_!x 就是用x 对于每一个2...N-1的数做取余。
然后 &作为binary operator是min(x,y)的意思,/是另外一一个adverb就是迭代
所以&/apply到一个vector上就是取最小值。所以如果x是质数这个最小值是1,
否则是0.
&的意思是take,就是返回为1的的index.a@i是取向量a里下标为i那些元素构成的
向量。

譬如

【在 G***l 的大作中提到】
: 这一堆@@##$$!!的是啥,比perl还夸张啊。
:
: 了

k***g
发帖数: 7244
33
k 应该算是文言文,q 才算白话,上面的那段程序用 q 按字面重写一遍:
(til N)[ where 1 = {and over x mod 2_til x} each til N]
符号的 verb 和 adverb 都改成单词了,意思清点儿了,如果把 and 换成 min,用 su
bset 取代 drop(_)就更通俗了;
不过一般写 code 大多数都是 k 和 q 混搭,算是半文半白吧,譬如同样的程序:
where 1 = {&/[x mod 2_til x]} each til 100
用!来表示 mod,只能用在 k2/k3,现在 k4/q 不让这么用了,用!表示 less than,必须
在纯 k code 下才能用, q console 里不让直接用(必须进入 k 模式才行)

element

【在 n******t 的大作中提到】
: 其实K很好读。比大部分程序都好读。
: 这东西有点像现代汉语,语法其实简单。但是刚开始学比较难。背的多一点。
: 所有的K都是自右向左读
: !N就是生成0.....N-1的向量。
: 然后{&/x!/:2_!x} 是一个函数,'是adverb,就是把函数apply到向量的每一个element
: 上面。
: 2_!x 就是0..N-1去掉前面两个元素,就是2....N-1
: /: 又是adverb叫做each right,然后!作为binary operator就是取余。这样
: x!/:2_!x 就是用x 对于每一个2...N-1的数做取余。
: 然后 &作为binary operator是min(x,y)的意思,/是另外一一个adverb就是迭代

r*g
发帖数: 3159
34
有没有k/q 相对其他语言的benchmark?

su
必须

【在 k***g 的大作中提到】
: k 应该算是文言文,q 才算白话,上面的那段程序用 q 按字面重写一遍:
: (til N)[ where 1 = {and over x mod 2_til x} each til N]
: 符号的 verb 和 adverb 都改成单词了,意思清点儿了,如果把 and 换成 min,用 su
: bset 取代 drop(_)就更通俗了;
: 不过一般写 code 大多数都是 k 和 q 混搭,算是半文半白吧,譬如同样的程序:
: where 1 = {&/[x mod 2_til x]} each til 100
: 用!来表示 mod,只能用在 k2/k3,现在 k4/q 不让这么用了,用!表示 less than,必须
: 在纯 k code 下才能用, q console 里不让直接用(必须进入 k 模式才行)
:
: element

n******t
发帖数: 4406
35
但是其实没有太大的差别。overload这个东西对K来说是家常便饭的事情。
但是我个人感觉熟悉之后,K比q看起来快。

su
必须

【在 k***g 的大作中提到】
: k 应该算是文言文,q 才算白话,上面的那段程序用 q 按字面重写一遍:
: (til N)[ where 1 = {and over x mod 2_til x} each til N]
: 符号的 verb 和 adverb 都改成单词了,意思清点儿了,如果把 and 换成 min,用 su
: bset 取代 drop(_)就更通俗了;
: 不过一般写 code 大多数都是 k 和 q 混搭,算是半文半白吧,譬如同样的程序:
: where 1 = {&/[x mod 2_til x]} each til 100
: 用!来表示 mod,只能用在 k2/k3,现在 k4/q 不让这么用了,用!表示 less than,必须
: 在纯 k code 下才能用, q console 里不让直接用(必须进入 k 模式才行)
:
: element

1 (共1页)
进入Programming版参与讨论
相关主题
贡献一个很好的模板网站C++ 问题紧急求救
August 2015 go 1.5 跳票了Go 1.5 这个 low latency GC 到底有多厉害?
Which is the most powerful OS for programmers?how to get time in milliseconds since 1970 (linux)
help- date is incorrectly converted when read csv using vba in excelhow to get time in milliseconds since 1970 on Linux
Shuffle performance (C#)c++ template中如何判断类型
如何在C++下, 把一个DataColumn 中的值赋给一个_variant_t变量?how to get time() result in millisecond precision? (转载)
怎么把一个Map放到queue里? (转载)水平表头
如何 测量某个函数的运行时间?C# 和 SQLite 连接的问题
相关话题的讨论汇总
话题: c#话题: linq话题: table话题: csv话题: data