有没有一种方法,以指导dplyr使用summarise_each与na.rm=TRUE?我想采用变量的均值,summarise_each("mean")但我不知道如何指定它来忽略缺失值.
我正在尝试将多个函数应用于a的多个列data.table.例:
DT <- data.table("a"=1:5,
"b"=2:6,
"c"=3:7)
Run Code Online (Sandbox Code Playgroud)
比方说,我想要得到的平均值和列的中位数a和b.这有效:
stats <- DT[,.(mean_a=mean(a),
median_a=median(a),
mean_b=mean(b),
median_b=median(b))]
Run Code Online (Sandbox Code Playgroud)
但这太重复了.有没有一种很好的方法来使用.SDcols和获得类似的结果lapply?
我正在使用testthatR中的包,我正在尝试测试文件中定义的函数example.R.此文件包含一个调用source("../utilities/utilities.R"),其中包含utilities.R由我编写的函数的文件.但是,当我尝试测试函数时example.R,在测试脚本中获取它会产生以下错误:
Error in file(filename, "r", encoding = encoding) :
cannot open the connection
In addition: Warning message:
In file(filename, "r", encoding = encoding) :
cannot open file '../utilities/utilities.R': No such file or directory
Run Code Online (Sandbox Code Playgroud)
您能否澄清一下如何在源自另一个文件的文件中运行函数测试?
虽然很简单,但我不知道data.table在数据表中选择组中前n行的解决方案.你能帮帮我吗?
我不明白我如何根据多个键进行过滤data.table.采用内置mtcars数据集.
DT <- data.table(mtcars)
setkey(DT, am, gear, carb)
Run Code Online (Sandbox Code Playgroud)
在小插图之后,我知道如果我想要过滤相应的am == 1 & gear == 4 & carb == 4,我可以说
> DT[.(1, 4, 4)]
mpg cyl disp hp drat wt qsec vs am gear carb
1: 21 6 160 110 3.9 2.620 16.46 0 1 4 4
2: 21 6 160 110 3.9 2.875 17.02 0 1 4 4
Run Code Online (Sandbox Code Playgroud)
它给出了正确的结果.此外,如果我想拥有am == 1 & gear == 4 & (carb == 4 | carb …
如何使用dplyr多个变量创建简单的摘要统计?使用该summarise_each函数似乎是要走的路,但是,当将多个函数应用于多个列时,结果是一个宽的,难以读取的数据帧.
我想读一个文件fread从data.table具有与“YYYY-MM-DD”格式的日期列。默认情况下,fread将列读取为chr。但是,我希望将列设置为Date,与应用时获得的方式相同as.Date。
我尝试使用
dt[,starttime.date := as.Date(starttime.date)]
Run Code Online (Sandbox Code Playgroud)
但是运行需要很长时间(我大约有4300万行)。
这可能有点奇怪,但是当data.table我在使用其用于过滤的参数的函数内时,我经常遇到这种情况.
想象一下,你有一个变量的值,你想要比较一个data.table列和进行过滤.如果变量的名称与列的名称相同怎么办?
我试过的例子和事情:
DT <- data.table(mtcars)
cyl <- 4
# intended: filter rows where column "cyl" equals the value of variable cyl
# this does not work
DT[cyl == (cyl)]
# this does not work either
DT[cyl == `cyl`]
Run Code Online (Sandbox Code Playgroud) 我想通过首先将缺少的类别添加到每列来连接两个具有类别类型列的数据框。
df = pd.DataFrame({"a": pd.Categorical(["foo", "foo", "bar"]), "b": [1, 2, 1]})
df2 = pd.DataFrame({"a": pd.Categorical(["baz"]), "b": [1]})
df["a"] = df["a"].cat.add_categories("baz")
df2["a"] = df2["a"].cat.add_categories(["foo", "bar"])
Run Code Online (Sandbox Code Playgroud)
理论上,两"a"列的类别是相同的:
In [33]: df.a.cat.categories
Out[33]: Index(['bar', 'foo', 'baz'], dtype='object')
In [34]: df2.a.cat.categories
Out[34]: Index(['baz', 'foo', 'bar'], dtype='object')
Run Code Online (Sandbox Code Playgroud)
但是,当连接两个数据框时,我得到一个object-type"a"列:
In [35]: pd.concat([df, df2]).info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 4 entries, 0 to 0
Data columns (total 2 columns):
a 4 non-null object
b 4 non-null int64
dtypes: int64(1), object(1)
memory usage: 96.0+ bytes …Run Code Online (Sandbox Code Playgroud)