在tidyr中使用正则表达式的问题

时间:2015-03-10 12:34:54

标签: r tidyr

使用数据是刚问的问题here,我想使用tidyr使用extract()传播数据。

df<-read.table(header=T,text=
                "id m1      m2     m3
 P001.st   60.00   2.0     1
 P003.nd   14.30   2.077   1
 P003.rt   29.60   2.077   1
 P006.st   10.30   2.077   1
 P006.nd   79.30   2.077   1
 P008.nd    9.16   2.077   1")

df %>% 
  extract(id, c("id2", "var"), c("(P00.)\\.(..)"))

这是基于hadley here的回答。

但我收到错误:

Error in drop && length(x) == 1L : invalid 'x' type in 'x && y'

我通常不会使用正则表达式,但是想开始使用,所以如果有人能帮我理解我失败的地方,我们将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:3)

在加载public final class MainFrame extends JFrame { public MainFrame() { JPanel menuPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); // Populate Menu Panel // ... JPanel canvasPanel = new JPanel(); canvasPanel.setBackground(Color.white); Dimension canvasDims = new Dimension(800,600); canvasPanel.setPreferredSize(canvasDims); canvasPanel.setMinimumSize(canvasDims); canvasPanel.setMaximumSize(canvasDims); JScrollPane canvasScrollPane = new JScrollPane( canvasPanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); JPanel masterPanel = new JPanel(new BorderLayout()); masterPanel.add(menuPanel, BorderLayout.NORTH); masterPanel.add(canvasScrollPane, BorderLayout.CENTER); setContentPane(masterPanel); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(1200, 700); setMinimumSize(new Dimension(500, 500)); setLocationRelativeTo(null); setVisible(true); } 之后,您的脚本可能也会加载JPanel ,但您忘了提及。

因此,您实际上是引用magrittr而不是tidyr

你可以

  1. 在加载magrittr::extract之前加载tidyr::extract ;或
  2. 明确参考magrittr
  3. 两者都必须有效。