小编bru*_*lin的帖子

添加2x2矩阵与NaNs

更多的一般MATLAB问题而不是寻找编程建议 - 如果我有:

y = cellfun(@(x)sum(x(:)), Z, 'un', 0);
Run Code Online (Sandbox Code Playgroud)

NaN在每个单元矩阵中存在's'和实数的组合时,当我对每个单元格中的所有矩阵的所有元素求和时,我总是得到total = NaN因为那里NaN有,或者它们会被忽略而只是求和实数.我问的原因是因为我得到了:

y = [NaN] [NaN] [NaN]
    [NaN] [NaN] [NaN]
    [NaN] [NaN] [NaN]
Run Code Online (Sandbox Code Playgroud)

示例单元矩阵(单元元素)将是:

x{1,1} = NaN 2   3
         4   5   6
         7   8   9
Run Code Online (Sandbox Code Playgroud)

所以我希望第一个元素y是:

y{1,1} = 44
Run Code Online (Sandbox Code Playgroud)

我怎么没有得到这个?

matlab sum nan

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

如何操作R中的多个列

我有下表:

  X Y
A 4 8
B 2 6
C 5 4
D 6 3
E 9 13
Run Code Online (Sandbox Code Playgroud)

但我想重新安排它看起来像:

AX AY BX BY CX CY......
4  8  2  6  5  4
Run Code Online (Sandbox Code Playgroud)

我在R工作并通过这样做得到了表

table(db[,1],db[,2])
Run Code Online (Sandbox Code Playgroud)

如何更改命令以获得所需的输出?

r

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

R中的sqlSave创建和将数据帧保存到sql表中

嗨,我正在使用R将数据帧保存到DB2 SQL表中。我似乎能够创建表框架,但无法将数据追加到表中-

>df <- read.csv("dat.csv")
Run Code Online (Sandbox Code Playgroud)

其中dat.csv是没有标题的csv,只有两列中的原始数据

然后我创建表:

>sqlQuery(channel, "create table sqltable 
                   (
                   col1  int,
                   col2  float
                   )"
         (
Run Code Online (Sandbox Code Playgroud)

我可以通过选择数据库上的空表“ sqltable”来确认表已创建

所以现在我需要通过执行以下操作将“ dat.csv”中的数据添加到“ sqltable”中:

>sqlSave(channel, df, "sqltable", verbose=T, fast=T, append=T)

no: 1 rownames 1/***/no: 2 col1 31105/***/no: 3 col2 0.001/***/
no: 2 rownames 1/***/no: 2 col1 31106/***/no: 3 col2 0.023/***/
no: 3 rownames 1/***/no: 2 col1 31107/***/no: 3 col2 1.456/***/
no: 4 rownames 1/***/no: 2 col1 31108/***/no: 3 col2 0.001/***/
no: 5 rownames 1/***/no: 2 col1 31109/***/no: 3 col2 2.102/***/
Run Code Online (Sandbox Code Playgroud)

一切都很好,直到我这样做: …

sql db2 r rodbc

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

在文件开头添加多行

我在同一子目录中有许多文件,如下所示:

10 A
11 T
12 A
13 C
15 A
Run Code Online (Sandbox Code Playgroud)

即两列,其中第一行始终以数字10开头.

我只想在每个文件的开头添加第1-9行,即

1
2
3
4
5
6
7
8
9 
10 A
11 T
12 A
13 C
15 A
Run Code Online (Sandbox Code Playgroud)

我不关心附加第二列.

我知道我能做到

sed -i '1i1' FILE
Run Code Online (Sandbox Code Playgroud)

添加第一行,但是我是否必须为每个要添加的其他行键入此命令?

unix bash awk sed

3
推荐指数
2
解决办法
1626
查看次数

sed多个目录中的多个文件

我有以下目录树:

books>book(i)>cluster.pir
Run Code Online (Sandbox Code Playgroud)

其中book(i)是一组子目录1到1023,每个子目录包含一个名为cluster.pir的文件夹.

以下sed命令:

sed -i '/>/d' ./*.pir
Run Code Online (Sandbox Code Playgroud)

对于任何带有.pir ext的文件,将删除包含'>'的文件中的任何一行,这很好,但是我的各种.pir文件都位于他们自己的book(i)目录中.如何让命令跨越所有目录?我试过了:

find ./*.pir -type f -exec sed -i '/>/d' ./*.pir
Run Code Online (Sandbox Code Playgroud)

当在'book'父目录中启动时,我得到:

find: missing argument to `-exec'
Run Code Online (Sandbox Code Playgroud)

有没有人对此有任何想法?

谢谢.

sed

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

预测变量中不允许出现随机森林误差 NA

嗨,我正在使用以下 r 脚本来构建随机森林:

# load the necessary libraries                      
library(randomForest)


testPP<-numeric()


# load the dataset
QdataTrain <- read.csv('train.csv',header = FALSE)
QdataTest <- read.csv('test.csv',header = FALSE)

QdataTrainX <- subset(QdataTrain,select=-V1)
QdataTrainY<-as.factor(QdataTrain$V1)   

QdataTestX <- subset(QdataTest,select=-V1)
QdataTestY<-as.factor(QdataTest$V1)
mdl <- randomForest(QdataTrainX, QdataTrainY) 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error in randomForest.default(QdataTrainX, QdataTrainY) : 
  NA not permitted in predictors
Run Code Online (Sandbox Code Playgroud)

但是我在我的数据中没有看到 NA 的出现。

参考这里是我的数据:

https://docs.google.com/file/d/0B0iDswLYaZ0zUFFsT01BYlRZU0E/edit
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会抛出这个错误?我会在此期间继续寻找。在此先感谢您的帮助!

r random-forest

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

如何添加到文件,而不是使用write.csv覆盖

简单的问题 - 我在R中使用write.csv函数:

write.csv(t(y), file = "test.csv")
Run Code Online (Sandbox Code Playgroud)

其中y是我目录中文件的数据框

但是,我的目录中有很多文件,我想通过循环将每个文件的输出写入"test.csv".但是,只是测试一下我注意到如果我写入test.csv,然后用另一个文件重复该命令,而不是添加它覆盖test.csv而不是添加到它.

所以我的问题是如何添加到test.csv而不是覆盖它.

非常感谢.

csv r

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

从多列中的记录中选择最小日期

嗨,我有以下表格结构:

Person    Date1             Date2............Daten
------    -----             -----            -----
1         2001-01-01        2002-01-01
2         2003-01-01        2000-01-01
Run Code Online (Sandbox Code Playgroud)

我想选择Date1和Date(n)之间的最小日期(在我的情况下为20个日期).因此,例如,它将为Person1选择Date1,为Person2选择Date2.

很明显,如果我只有1个日期列,我可以使用min(Date),但在这种情况下我无法理解我的逻辑.

非常感谢.

sql db2

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

计算 R 中的频率或百分比矩阵

如果我有以下几点:

mm <- matrix(0, 4, 3)
mm<-apply(mm, c(1, 2), function(x) sample(c(0, 1), 1))

> mm
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    1    1    0
[3,]    0    0    0
[4,]    1    0    1
Run Code Online (Sandbox Code Playgroud)

如何输出一个矩阵,该矩阵表示两个值都为 1 的不同列的频率或百分比。例如 - 4 中有两行,其中第 1 列和第 2 列都等于 1 (=0.5) 和 4 中的 1 行其中第 2 列和第 3 列 = 1 (=0.25),所以在这种情况下我需要:

     [,1]      [,2]      [,3]
[1,]    1      0.5       0.5
[2,]    0.5    1         0.25
[3,]    0.5    0.25      1
Run Code Online (Sandbox Code Playgroud)

我对比较相同的列不感兴趣,所以默认情况下对角线保持在 1。

我想我可能会在某个cor(mm)地方有办法输出共同频率或共同百分比而不是相关系数,但情况似乎并非如此。但是最终输出的维度应该是一个 N x …

r

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

使用先前 magrittr 链的输出作为进一步参数的参数

如果我有以下示例:

library(text2vec)
library(magrittr)

reviews <- movie_review[1:10,]

vocabInsomnia <- reviews$review %>% itoken(tolower, word_tokenizer, n_chunks = 10) %>%
    create_vocabulary %>%
    prune_vocabulary(term_count_min = 10, doc_proportion_max = 0.5) %>%
    vocab_vectorizer %>%
    create_dtm(<output_from_itoken>,<output_from_vocab_vectorizer>)
Run Code Online (Sandbox Code Playgroud)

您可以看到,在最后一个链序列中,我想使用前面两个步骤的输出作为函数的参数create_dtm。我只知道如何在 ie 输出之前直接输入链的输出,但不知道作为序列中第一个链的vocab_vectorizer函数的输出。itoken马格里特允许这样做吗?

r dplyr magrittr tidyverse

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

标签 统计

r ×6

db2 ×2

sed ×2

sql ×2

awk ×1

bash ×1

csv ×1

dplyr ×1

magrittr ×1

matlab ×1

nan ×1

random-forest ×1

rodbc ×1

sum ×1

tidyverse ×1

unix ×1