【问题标题】:NSLOOKUP in R (rstats)R中的NSLOOKUP(rstats)
【发布时间】:2013-08-06 08:46:22
【问题描述】:

我是脚本和 R 的新手。

在 Windows cmd.exe 中,我可以通过以下方式对域执行 NSLOOKUP:

nslookup www.google.com

我有一个域名数据集,作为我在 R 中的分组过程的一部分,我想验证它是有效还是无效。有没有办法在基础 R 或其中一个包中执行 NSLOOKUP?

编辑1: 我使用建议的系统调用对循环 3 个域进行了一些更改。该调用有效,但输出不会直接保存到向量中(下面的第 7 行)。我需要如何修改这条线才能捕获输出?

domains <- c('www.google.com','www.badtestdomainnotvalid.com','www.yahoo.com')
dns <- vector()
dnsreturn <-vector()
for(i in 1:length(domains)){
  dns[i] <- paste('nslookup ',domains[i],sep='')
  dnsreturn[i] <- system(dns[i],intern=TRUE)}
}

【问题讨论】:

    标签: r nslookup


    【解决方案1】:

    如果别无他法

    system("nslookup www.google.com", intern=TRUE)
    

    响应您的编辑:

    domains = c('www.google.com','www.badtestdomainnotvalid.com','www.yahoo.com')
    sapply(domains, function(x) system(paste("nslookup", x), intern=TRUE))
    

    这将返回一个向量列表,您可以根据需要进行操作

    【讨论】:

    • 这适用于单行,我正在编辑我的问题以包括更改您的解决方案以保存输出,以免系统调用回向量或框架。
    • @ConnieMarie 请注意,Geoff 并没有像您在问题中那样初始化他的对象。 It's a good idea to preallocate a vector if it's going to get really big,但您需要指定长度,否则对您没有任何好处。像上面的 Geoff 那样使用 apply 系列函数是一个更好的主意。
    猜你喜欢
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2017-04-24
    • 2017-05-14
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多