我试过了:
echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\t/g'
Run Code Online (Sandbox Code Playgroud)
结果如下:
eggtsalad
Run Code Online (Sandbox Code Playgroud)
和...
echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\\t/g'
Run Code Online (Sandbox Code Playgroud)
结果如下:
egg\tsalad
Run Code Online (Sandbox Code Playgroud)
我想要的是什么:
egg salad
Run Code Online (Sandbox Code Playgroud) 我sum(is.na(my.df))用来检查我的数据框是否包含任何按预期工作的NA,但是sum(is.nan(my.df))没有按照我的预期工作.
> my.df <- data.frame(a=c(1, 2, 3), b=c(5, NA, NaN))
> my.df
a b
1 1 5
2 2 NA
3 3 NaN
> is.na(my.df)
a b
[1,] FALSE FALSE
[2,] FALSE TRUE
[3,] FALSE TRUE
> is.nan(my.df)
a b
FALSE FALSE
> sum(is.na(my.df))
[1] 2
> sum(is.nan(my.df))
[1] 0
Run Code Online (Sandbox Code Playgroud)
噢亲爱的.是否存在行为不一致的原因?是因为缺乏实施,还是故意的?返回值is.nan(my.df)表示什么?是否有充分的理由不在is.nan()整个数据框架上使用?
在该文档is.na( )和is.nan( ),参数类型似乎是相同的(虽然他们没有明确列出的数据帧):
is.na():x R要测试的对象:默认方法处理原子向量,列表和pairlists.
is.nan():x R要测试的对象:默认方法处理原子向量,列表和pairlists.
我很想知道R的平均函数使用什么算法.是否有一些参考该算法的数值属性?
我在summary.c中找到了以下C代码:do_summary():
case REALSXP:
PROTECT(ans = allocVector(REALSXP, 1));
for (i = 0; i < n; i++) s += REAL(x)[i];
s /= n;
if(R_FINITE((double)s)) {
for (i = 0; i < n; i++) t += (REAL(x)[i] - s);
s += t/n;
}
REAL(ans)[0] = s;
break;
Run Code Online (Sandbox Code Playgroud)
它似乎做了一个直线意思:
for (i = 0; i < n; i++) s += REAL(x)[i];
s /= n;
Run Code Online (Sandbox Code Playgroud)
然后它添加了我假设的数值修正,它似乎是与数据平均值的平均差异:
for (i = 0; i < n; i++) t += (REAL(x)[i] - s);
s += t/n;
Run Code Online (Sandbox Code Playgroud)
我无法在任何地方跟踪此算法(意味着不是一个很棒的搜索词).
任何帮助将非常感激.
例如:
A <- 1:10
B <- A
Run Code Online (Sandbox Code Playgroud)
A和B都引用相同的底层向量.
在我用C语言实现某些功能之前... R中是否有一个函数可以测试两个变量是否引用相同的底层对象?
谢谢.
是否存在用于确定数据帧中是否存在行的现有函数?我想可以做一个申请/相同,但似乎我错过了一些东西.
例如:
给出这样一个数据框:
a b
1 1 cat
2 2 dog
Run Code Online (Sandbox Code Playgroud)
是否存在允许我测试(1, cat)数据框中是否存在行的现有函数?
谢谢,扎克
例如,给定数据框:
> df1
a b
1 1 3
2 2 4
Run Code Online (Sandbox Code Playgroud)
和
> df2
x y z
1 10 12 14
2 11 13 15
Run Code Online (Sandbox Code Playgroud)
并在df1和df2的每一对列上进行加法运算,我想生成:
> df3
ax bx ay by az bz
1 11 13 13 15 15 17
2 13 15 15 17 17 19
Run Code Online (Sandbox Code Playgroud)
我编写了以下代码来完成这项工作,但我想知道是否有更好的方法来完成它.
df1 <- data.frame(a=1:2, b=3:4)
df2 <- data.frame(x=10:11, y=12:13, z=14:15)
byColumnAdditionAllPairs <- function(df1, df2) {
doOp <- function(x, df1, df2, pairs) {
i <- pairs[x,1]; # ith column of df1
j <- …Run Code Online (Sandbox Code Playgroud)