通过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 管道传递非第一个参数?
这是我通过 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 查询。
提前致谢。
我正在尝试为我的二元分类问题训练一个模型。
我的数据有 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
我有一个这样的文件;
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)
提前致谢。