拆分变量并保留第一部分

时间:2016-08-14 04:40:36

标签: r

我有一个由三个数字组成的变量,由"分隔。"前两个数字是ID,最后一个是代表号。例如在" 3.4.1" ID将是" 3.4。"和代表" 1"。我想分割数字,只保留" ID"数字作为新变量。虽然我能够得到我想要的东西,但我确信必须有一种更简单的方法来解决这个问题。这是一个玩具示例:

 function AddLoginModalEvent(){
    let event = document.createEvent('Event');
    event.initEvent('addLoginModal', true, true);
    document.dispatchEvent(event);
}

class LoginModal extends React.Component {
    constructor(){
        super();
        this.state = {
            showModal:'none'
        }
    }

    componentDidMount() {
        document.addEventListener('addLoginModal', (e) => {
            this.showModal();
        }, false);
        $('.ui.modal').modal({detachable: false});
    }

    showModal(){
        this.setState({ showModal:'inherit' });
         $('.ui.modal.editform').modal('show');
    }

    closeModal(){
        this.setState({ showModal:'none'});
    }

  render() {
    const style = { display:this.state.showModal, top:'50px' };
    const close = <div className="ui black deny button" onClick={this.closeModal}> Nope </div>;

    return (
          <div>
            <AddLoginModal style={style} title="Login" close={close} />
          </div>
      );
  }
}


class AddLoginModal extends Component{
    render(){
      return(
        <div style={this.props.style}>
            <div className="ui modal editform">
                <div className="ui middle aligned center aligned grid">
                  <div className="column">
                    <h2 className="ui teal image header">
                      <div className="content">
                        Log-in to your account
                      </div>
                    </h2>
                  </div>
                </div>
            </div>
        </div>
     )
    }
}

export default LoginModal;

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我们可以使用sub来匹配.(转义点\\.,因为它是元字符),后跟一个或多个不是点的字符({{1} })直到字符串结尾并用[^.]+替换它。

""

如果我们最后也需要d$ID <- sub("\\.[^.]+$", "", d$plant) d$ID #[1] "2.3" "2.3" "1.2" "1.2" "12.3" "12.3" (这似乎不太可能)

.