小编Ank*_*kit的帖子

在整个data.table列上应用自定义函数?

我有一个非常大Data Table的两列.我希望在特定列上应用自定义函数.生成问题的代码如下:

require(data.table)
X <- rep("This is just random text", 1e5)
data <- data.frame(1:1e5, replicate(1, X, simplify=FALSE), stringsAsFactors=FALSE)
colnames(data) <- paste("X", seq_len(ncol(data)), sep="")
DT <- as.data.table(data)
Run Code Online (Sandbox Code Playgroud)

现在,我们有一个大型数据表,看起来像

| X1 |            X2           |
|----|-------------------------|
| 1  | This is just random text|
| 2  | This is just random text|
| 3  | This is just random text|
| 4  | This is just random text|
| .. |            ...          |
Run Code Online (Sandbox Code Playgroud)

如果我想在这个列的任何一个上做一些向量操作,考虑到这个data.table将是非常大的(大约~100M行),该怎么办?

我们来看一个X1列的例子.假设,我想在其上应用以下功能:

Fun4X1 <- function(x){return(x+x*2)}
Run Code Online (Sandbox Code Playgroud)

而 …

r function apply large-data data.table

5
推荐指数
1
解决办法
1981
查看次数

从R中的字符串中获取日期/时间

我有一个字符串让我这样说

Ankit说:2013年5月13日上午10:55你摇滚

而且,我希望从中获取日期

2013年5月13日

有什么方法可以在R中做到这一点吗?我已经通过以下方式尝试了strptime函数:

strptime("Ankit says: May 13, 2013 at 10:55 am you rock", " %b %d, %Y")
Run Code Online (Sandbox Code Playgroud)

我明白了 "NA"

但是,当我在日期之前没有任何语言的时候尝试它

strptime("May 13, 2013 at 10:55 am you rock", " %b %d, %Y")
Run Code Online (Sandbox Code Playgroud)

我输出为 "2013-05-13"

我也试过正则表达式

grep("Ankit says: May 13, 2013 at 10:55 am you rock", "?(?:[a-zA-Z]*)(\\s+)(?:[0-9]*)(,)(\\s+)(?:[0-9]*)")
Run Code Online (Sandbox Code Playgroud)

regex datetime r

2
推荐指数
1
解决办法
1151
查看次数

使用awk解析包含逗号的制表符分隔文件

我想使用awk删除以下输入文件的第二个字段中":"之后的所有值.

输入

text1   [a:2,b:1,c:4,k:0]
text2   [d:1,a:5,f:3.2]
Run Code Online (Sandbox Code Playgroud)

产量

text1   a,b,c,k
text2   d,a,f
Run Code Online (Sandbox Code Playgroud)

我能够使用R来做到这一点但是对于较大的文件来说这有点慢.

linux bash awk gawk

1
推荐指数
1
解决办法
97
查看次数

标签 统计

r ×2

apply ×1

awk ×1

bash ×1

data.table ×1

datetime ×1

function ×1

gawk ×1

large-data ×1

linux ×1

regex ×1