使用数据是刚问的问题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'
我通常不会使用正则表达式,但是想开始使用,所以如果有人能帮我理解我失败的地方,我们将非常感激。
谢谢!
答案 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
。
你可以
magrittr::extract
之前加载tidyr::extract
;或magrittr
。两者都必须有效。