我正试图if在管道内使用.
我知道有where(别名?)过滤器,但是如果我想只在满足某个条件时才激活过滤器怎么办?
我的意思是,例如:
get-something | ? {$_.someone -eq 'somespecific'} | format-table
如何if在管道内使用来打开/关闭过滤器?可能吗?是否有意义?
谢谢
编辑澄清
没有管道,它看起来像这样:
if($filter) {
get-something | ? {$_.someone -eq 'somespecific'}
}
else {
get-something
}
在ANSWER的riknik之后编辑
愚蠢的例子显示了我在寻找什么.您有一个存储在变量上的非规范化数据表,$data并且您希望执行一种"向下钻取"数据过滤:
function datafilter {
param([switch]$ancestor,
[switch]$parent,
[switch]$child,
[string]$myancestor,
[string]$myparent,
[string]$mychild,
[array]$data=[])
$data |
? { (!$ancestor) -or ($_.ancestor -match $myancestor) } |
? { (!$parent) -or ($_.parent -match $myparent) } |
? { (!$child) -or ($_.child -match $mychild) } |
} … 我需要保存一个文件(.pdf),但我不确定该怎么做.我需要保存.pdfs并以这样的方式存储它们,使它们组织在一个目录中,就像它们存储在我正在抓取它们的网站上一样.
从我可以收集到的东西,我需要建立一个管道,但从我理解的管道保存"项目"和"项目"只是基本数据,如字符串/数字.保存文件是否正确使用管道,或者我应该将文件保存在蜘蛛中?
我想在postgresql中测量一些SQL查询的运行时间.使用BASH内置时间,我可以执行以下操作:
$ time (echo "SELECT * FROM sometable" | psql)
Run Code Online (Sandbox Code Playgroud)
我喜欢GNU时间,它提供更多格式.但是我不知道怎么用管道做.为简单起见,我ls | wc在以下示例中使用:
$ /usr/bin/time -f "%es" (ls | wc)
-bash: syntax error near unexpected token `('
$ /usr/bin/time -f "%es" "ls | wc"
/usr/bin/time: cannot run ls | wc: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果我不以任何方式对管道进行分组,它不会抱怨:
$ /usr/bin/time -f "%es" ls | wc
0.00s
Run Code Online (Sandbox Code Playgroud)
但显然,这仅测量管道的第一部分,如下一个示例所示
$ /usr/bin/time -f "%es" ls | sleep 20
0.00s
Run Code Online (Sandbox Code Playgroud)
那么问题是GNU Time与管道的正确语法是什么?
有没有办法在R中编写流水线函数,其中一个函数的结果立即传递到下一个函数?我来自F#并且非常欣赏这种能力,但还没有找到如何在R中做到这一点.它应该很简单,但我找不到如何.在F#中它看起来像这样:
let complexFunction x =
x |> square
|> add 5
|> toString
Run Code Online (Sandbox Code Playgroud)
在这种情况下,输入将被平方,然后添加5,然后转换为字符串.我希望能够在R中做类似的事情,但不知道如何做.我已经搜索了如何做这样的事情,但没有遇到任何问题.我想要导入数据,因为我通常必须导入它然后过滤.现在我在多个步骤中执行此操作,并且非常希望能够以F#管道方式执行某些操作.
我需要在sed中使用命令的输出作为搜索模式.我将使用echo做一个例子,但假设这可能是一个更复杂的命令:
echo "some pattern" | xargs sed -i 's/{}/replacement/g' file.txt
Run Code Online (Sandbox Code Playgroud)
该命令不起作用,因为"某些模式"有一个空格,但我认为这清楚地说明了我的问题.
如何使该命令有效?
提前致谢,
我根据下面的alexce的建议做了改进.我需要的是如下图所示.但是,每行/每行应该是一个评论:日期,评级,评论文本和链接.
我需要让物品处理器处理每个页面的每个评论.
目前,TakeFirst()仅对页面进行第一次审核.所以10页,我只有10行/行,如下图所示.

蜘蛛代码如下:
import scrapy
from amazon.items import AmazonItem
class AmazonSpider(scrapy.Spider):
name = "amazon"
allowed_domains = ['amazon.co.uk']
start_urls = [
'http://www.amazon.co.uk/product-reviews/B0042EU3A2/'.format(page) for page in xrange(1,114)
]
def parse(self, response):
for sel in response.xpath('//*[@id="productReviews"]//tr/td[1]'):
item = AmazonItem()
item['rating'] = sel.xpath('div/div[2]/span[1]/span/@title').extract()
item['date'] = sel.xpath('div/div[2]/span[2]/nobr/text()').extract()
item['review'] = sel.xpath('div/div[6]/text()').extract()
item['link'] = sel.xpath('div/div[7]/div[2]/div/div[1]/span[3]/a/@href').extract()
yield item
Run Code Online (Sandbox Code Playgroud) 我适合一个Pipeline物体RandomizedSearchCV
pipe_sgd = Pipeline([('scl', StandardScaler()),
('clf', SGDClassifier(n_jobs=-1))])
param_dist_sgd = {'clf__loss': ['log'],
'clf__penalty': [None, 'l1', 'l2', 'elasticnet'],
'clf__alpha': np.linspace(0.15, 0.35),
'clf__n_iter': [3, 5, 7]}
sgd_randomized_pipe = RandomizedSearchCV(estimator = pipe_sgd,
param_distributions=param_dist_sgd,
cv=3, n_iter=30, n_jobs=-1)
sgd_randomized_pipe.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)
我想访问该coef_属性,best_estimator_但我无法做到这一点.我尝试使用coef_下面的代码访问.
sgd_randomized_pipe.best_estimator_.coef_
但是我得到以下AttributeError ...
AttributeError:'Pipeline'对象没有属性'coef_'
scikit-learn文档说这coef_是属性SGDClassifier,属于我的类base_estimator_.
我究竟做错了什么?
将stderr与stdout结合使用时,为什么2>&1需要在|(管道)之前但在> myfile(重定向到文件)之后呢?
要将stderr重定向到stdout以获取文件输出:
echo > myfile 2>&1
Run Code Online (Sandbox Code Playgroud)
要将stderr重定向到管道的stdout:
echo 2>&1 | less
Run Code Online (Sandbox Code Playgroud)
我的假设是我可以这样做:
echo | less 2>&1
Run Code Online (Sandbox Code Playgroud)
它会起作用,但事实并非如此.为什么不?
我对sklearn中的管道很新,我遇到了这个问题:我有一个混合了文本和数字的数据集,即某些列只有文本而rest有整数(或浮点数).
我想知道是否有可能构建一个管道,我可以调用LabelEncoder()文本功能和MinMaxScaler()数字列.我在网上看到的例子主要指向使用LabelEncoder()整个数据集而不是选择列.这可能吗?如果是这样,任何指针都将非常感激.
pipeline ×10
python ×4
bash ×3
scikit-learn ×2
scrapy ×2
azure ×1
c# ×1
csv ×1
gnu ×1
pipe ×1
powershell ×1
r ×1
replace ×1
sed ×1
shell ×1
statements ×1
stdout ×1
time ×1
web-crawler ×1