我有一个大约500.000行的大数据集.他们每个人都是字符串.我想将所有行修剪为固定大小.
我找到了这个:
dt$rev <- strtrim(dt$rev, width=max_len)
Run Code Online (Sandbox Code Playgroud)
但是这需要太长时间.有更快的方法吗?
Jos*_*ien 12
这与data.table无关.这只是strtrim()相当慢.
只要您使用单宽字符(例如,不是中文/日文/韩文的字符),您就可以使用substr(),这样更快.
## Make a long character vector with 5 million elements
x <- rep(state.name, 1e5)
## Speed comparison
system.time(substr(x, 1, 3))
# user system elapsed
# 0.43 0.00 0.44
system.time(strtrim(x, 3))
# user system elapsed
# 44.63 0.03 44.85
## Confirm that both methods return the same output
identical(substr(state.name,1,3), strtrim(state.name,3))
# [1] TRUE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
672 次 |
| 最近记录: |