如何循环遍历每个元素,评估条件,然后将值分配给R中的新矩阵?

时间:2017-09-19 02:32:52

标签: r for-loop

我有以下矩阵B:

B = matrix(c(2, 4, 98, 1, 5, 1), nrow=3,  ncol=2) 

我想遍历每个元素并检查它是否小于3或其他。 如果小于3,则分配值' 5'否则分配值' 0' 0如果大于3.我想要的最终结果输出如下:

# Final result
result = matrix(c(5, 0, 0, 5, 0, 5), nrow=3,  ncol=2) 

我是R的新手并尝试使用以下代码,但事实并非如此 工作,我怀疑不是最有效率的。我将不胜感激任何反馈。

for i in 1:nrow(B){
  for j in 1:ncol(B){
    if (B < 3)
      result[i,j] = 5
    else
      result[i,j] = 0

  }
}

1 个答案:

答案 0 :(得分:1)

这是通过将逻辑矩阵与5

相乘的一种方法
import React, { Component } from 'react';
import { connect } from 'react-redux';
import PollOption from './poll_option';
import  * as Actions from '../actions';

class APoll extends Component {

componentDidMount() {
    this.props.fetchAPoll(this.props.params.postId);
}  

renderOption(pollData) {
    //console.log("renderOption:", pollData.options);
    return (
           pollData.options.forEach(function(option) {
              return (
                <PollOption title={option.title} value={option.value} />
              ); 
           })
        );
}

render() {
    const a_poll = this.props.a_poll ? this.props.a_poll : "nothing here";
    return (
        <div>
            <div>{ a_poll.title } : {a_poll.user_name}</div>
            <div>{a_poll.map(this.renderOption)}</div>
        </div>
    );
}

};

function mapStateToProps({a_poll}) {
return { 
    a_poll
};
}

export default connect(mapStateToProps, Actions)(aPoll);