小编Der*_*wis的帖子

在data.table列中拆分文本字符串

我有一个脚本,将CSV文件中的数据读入a data.table,然后将一列中的文本拆分为几个新列.我目前正在使用lapplystrsplit函数来执行此操作.这是一个例子:

library("data.table")
df = data.table(PREFIX = c("A_B","A_C","A_D","B_A","B_C","B_D"),
                VALUE  = 1:6)
dt = as.data.table(df)

# split PREFIX into new columns
dt$PX = as.character(lapply(strsplit(as.character(dt$PREFIX), split="_"), "[", 1))
dt$PY = as.character(lapply(strsplit(as.character(dt$PREFIX), split="_"), "[", 2))

dt 
#    PREFIX VALUE PX PY
# 1:    A_B     1  A  B
# 2:    A_C     2  A  C
# 3:    A_D     3  A  D
# 4:    B_A     4  B  A
# 5:    B_C     5  B  C
# 6:    B_D     6  B  D 
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,该列 …

r data.table

72
推荐指数
4
解决办法
5万
查看次数

如何更改数据框中的列值?

我有一个简单的数据框列转换,可以使用if/else循环完成,但我想知道是否有更好的方法来做到这一点.

最初的数据框是,

 df <-data.frame(cbind(x=rep(10:15,3), y=0:8))
 df
    x y
1  10 0
2  11 1
3  12 2
4  13 3
5  14 4
6  15 5
7  10 6
8  11 7
9  12 8
10 13 0
11 14 1
12 15 2
13 10 3
14 11 4
15 12 5
16 13 6
17 14 7
18 15 8
Run Code Online (Sandbox Code Playgroud)

我需要做的是替换'y'列中的值

'0' gets replaced with '2',
'1' gets replaced with '2.2',
'2' gets replaced with '2.4',
...
... …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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

如何在fread中指定变量filename

我有一个R脚本,可以将几个文本文件读入data.tables.我使用for循环来逐步浏览文件列表以读取每个文件,这非常有效.

dta <- data.table()
for (fname in flist) {
  dt <- data.table(read.csv(fname, header=T, sep=",", comment.char="#"))
  dt$FNAME <- fname
  dta <-rbind(dta,dt)
}
Run Code Online (Sandbox Code Playgroud)

为了加快速度,我决定尝试使用data.table包中的fread方法.我还决定使用grep shell命令来帮助操作,

dta <- data.table()
for (fname in flist) {
  dt <- fread('grep RDIST fname', header=F, sep=",")
  dt$FNAME <- fname
  dta <-rbind(dta,dt)
}
Run Code Online (Sandbox Code Playgroud)

但我收到一条错误消息,

grep: fname: No such file or directory
Error in fread("grep RDIST fname", header = F, sep = ",") :
  File is empty: /dev/shm/file2e7efc79ba710d
Run Code Online (Sandbox Code Playgroud)

我认为问题是fread命令没有将fname变量解析为实际的文件名.如果我尝试使用实际文件名而不是变量,这很好用,

> fname
[1] "QualM_Setall_20150901_165011.txt"
> dt <- fread('grep RDIST QualM_Setall_20150901_165011.txt', sep=',', …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

如何确定哪些文件在 Git 中的 origin/master 后面

当我在我的工作区上运行命令“git status”时,我收到以下消息:

# On branch master
# Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行命令“git pull”,工作区将使用原点/主文件上的文件进行更新。该命令还会在屏幕上显示被拉入以更新我的工作区的文件。

有没有办法在不实际运行“git pull”命令的情况下确定这个文件列表?

git

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

标签 统计

r ×3

data.table ×2

dataframe ×1

git ×1