小编Sam*_*kel的帖子

在本机管道中传递第二个或更高的参数

通过magrittr的 pipeline ( %>%) 这段代码可以工作;

library(dplyr)

set.seed(1)

a <- sample(LETTERS[1:30],5)

a %>% gsub('A','-',x = .)
Run Code Online (Sandbox Code Playgroud)

但在 R 的本机或“内置”管道中,我无法使用点进行管道传输,这个不起作用;

set.seed(1)

a <- sample(LETTERS[1:30],5)

a |> gsub('A','-',x = .)
Run Code Online (Sandbox Code Playgroud)

我们如何通过原生 R 管道传递非第一个参数?

r pipe

11
推荐指数
3
解决办法
1560
查看次数

使用 dbplyr 删除包含 NA 的行

这是我通过 dbplyr 运行一些 SQL 查询的方法

library(tidyverse)
library(dbplyr)
library(DBI)
library(RPostgres)
library(bit64)
library(tidyr)

drv <- dbDriver('Postgres')

con <- dbConnect(drv,dbname='mydb',port=5432,user='postgres')

table1 <- tbl(con,'table1')
table2 <- tbl(con,'table2')
table3 <- tbl(con,'table3')

table1 %>% mutate(year=as.integer64(year)) %>% left_join(table2,by=c('id'='id')) %>%
left_join(table3,by=c('year'='year'))
Run Code Online (Sandbox Code Playgroud)

我想删除一些包含 NA 的行,然后删除collect我的最终表,但找不到任何对 dbplyr 查询有用的内容。

我尝试drop_na()从管道tidyr和其他一些基本功能(complete.cases()等)。你能给我什么建议来实现我的目标吗?WHERE FOO IS NOT NULL也欢迎通过管道将 SQL 查询(如 )传递给 dbplyr 查询。

提前致谢。

sql r dplyr dbplyr

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

Keras 模型预测 NaN

我正在尝试为我的二元分类问题训练一个模型。

我的数据有 91 列和 50,000 行。其中一列是我的二进制目标变量,所有其他列也是数字。这是我尝试训练的方式;

model = Sequential()
model.add(Dense(20, input_dim=90, kernel_initializer='normal', activation='relu'))
model.add(Dense(20, kernel_initializer='normal', activation='relu'))
model.add(Dense(20, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal', activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train_scaled, y_train, epochs=20)
Run Code Online (Sandbox Code Playgroud)

经过快速训练后,我尝试用我的测试集进行预测,发现所有预测都是NaN

+ model.predict(x_test_scaled)

- array([[nan],
       [nan],
       [nan],
       ...,
       [nan],
       [nan],
       [nan]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我在训练过程中也没有看到损失分数。还写了NaN

python keras tensorflow

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

通过 awk 在非数字列周围添加双引号

我有一个这样的文件;

2018-01-02;1.5;abcd;111
2018-01-04;2.75;efgh;222
2018-01-07;5.25;lmno;333
2018-01-09;1.25;prs;444
Run Code Online (Sandbox Code Playgroud)

我想向非数字列添加双勾,因此新文件应如下所示:

"2018-01-02";1.5;"abcd";111
"2018-01-04";2.75;"efgh";222
"2018-01-07";5.25;"lmno";333
"2018-01-09";1.25;"prs";444
Run Code Online (Sandbox Code Playgroud)

到目前为止我已经尝试过了,知道这不是正确的方法

head myfile.csv -n 4 | awk 'BEGIN{FS=OFS=";"} {gsub($1,echo $1 ,$1)} 1' | awk 'BEGIN{FS=OFS=";"} {gsub($3,echo "\"" $3 "\"",$3)} 1' 
Run Code Online (Sandbox Code Playgroud)

提前致谢。

linux awk

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

标签 统计

r ×2

awk ×1

dbplyr ×1

dplyr ×1

keras ×1

linux ×1

pipe ×1

python ×1

sql ×1

tensorflow ×1