Rcpp에서 문자열 연결에 대해 혼란 스러움

Tiger_Stripes

데이터 프레임을 반복하고 Rcpp에서 공백으로 구분 된 단어 블록을 연결하려고합니다.

Stack Overflow에 대한 몇 가지 답변을 읽으려고 시도했지만 Rcpp에서 문자열이 연결되는 방식에 대해 완전히 혼란 스럽습니다. (예 : StringVector와 Rcpp 연결 )

C ++에서는 + 연산자를 사용하여 문자열을 추가 할 수 있다는 것을 알고 있습니다.

이것은 아래 내 Rcpp 기능입니다.

cppFunction('
Rcpp::StringVector formTextBlocks(DataFrame frame) {
#include <string> 
using namespace Rcpp;
 NumericVector frame_x = as<NumericVector>(frame["x"]);

   LogicalVector space = as<LogicalVector>(frame["space"]);
   Rcpp::StringVector text=as<StringVector>(frame["text"]);
  if (text.size() == 0) {
    return text;
  }
  int dfSize = text.size();

  for(int i = 0;  i < dfSize; ++i) {
    if ( i !=dfSize  ) {
     if (space[i]==true) {

     text[i]=text[i] + text[i+1]  ;

    }
  }

  }
  return text;
}
')

오류는 라인에 있습니다. error: no match for 'operator+'

루프 내에서 문자열을 어떻게 연결할 수 있습니까?

랄프 스 튜너

operator+대해 정의 std::string되었으므로 다음 대신 text열을 변환하여 사용하는 것이 가장 쉽습니다 .std::vector<std::string>Rcpp::StringVector

Rcpp::cppFunction('
std::vector<std::string> formTextBlocks(DataFrame frame) {
  LogicalVector space = as<LogicalVector>(frame["space"]);
  std::vector<std::string> text=as<std::vector<std::string>>(frame["text"]);
  if (text.size() == 0) {
    return text;
  }
  int dfSize = text.size();

  for(int i = 0;  i < dfSize - 1; ++i) {
    if (space[i]==true) {
      text[i]=text[i] + text[i+1];
    }
  }
  return text;
}
')

set.seed(20191129)
textBlock <- data.frame(space = sample(c(TRUE, FALSE), 100, replace = TRUE),
                        text = sample(LETTERS, 100, replace = TRUE),
                        stringsAsFactors = FALSE)
formTextBlocks(textBlock)
#>   [1] "B"  "N"  "G"  "BM" "M"  "O"  "C"  "F"  "OQ" "Q"  "FH" "H"  "D"  "HK" "KH"
#>  [16] "H"  "S"  "LX" "XO" "OY" "Y"  "E"  "VD" "D"  "TN" "N"  "LL" "LQ" "Q"  "F" 
#>  [31] "XX" "X"  "S"  "R"  "P"  "L"  "M"  "GK" "KD" "DD" "D"  "H"  "M"  "M"  "K" 
#>  [46] "N"  "GP" "PG" "G"  "P"  "G"  "O"  "N"  "NY" "Y"  "OX" "X"  "LX" "XF" "FS"
#>  [61] "SE" "E"  "PS" "S"  "YD" "D"  "F"  "Z"  "H"  "ZN" "N"  "OM" "M"  "XH" "HV"
#>  [76] "V"  "OX" "X"  "J"  "BZ" "Z"  "FZ" "ZE" "E"  "SV" "V"  "G"  "F"  "DZ" "ZF"
#>  [91] "F"  "PB" "B"  "K"  "N"  "U"  "B"  "PV" "V"  "C"

2019-11-29에 reprex 패키지 (v0.3.0)에 의해 생성됨

메모:

  • 나는 제거한 #includeusing. 이것들은 필요하지 않으며 함수 정의 내에 속하지 않습니다.
  • 어차피 i != dfSize절대로 테스트를 제거했습니다 false.
  • 요소에 도달하기 때문에 루프의 길이가 1만큼 줄어 듭니다 i+1.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python OR 연산자에 대해 혼란 스러움

분류에서Dev

nodeJS에 대해 혼란 스러움

분류에서Dev

가치에 대해 혼란 스러움

분류에서Dev

DropDownListFor에 대해 혼란 스러움

분류에서Dev

ContentType에 대해 혼란 스러움

분류에서Dev

WindowBuilder에 대해 혼란 스러움

분류에서Dev

EKEventStatus에 대해 혼란 스러움

분류에서Dev

React / Typescript-구문에 대해 혼란 스러움

분류에서Dev

파이썬 구문에 대해 혼란 스러움

분류에서Dev

Laravel 공급자 및 계약에 대해 혼란 스러움

분류에서Dev

Perl에서 결합 및 분할에 대해 혼란 스러움

분류에서Dev

2 차원 배열로 문자열을 가져 오는 것에 대해 혼란 스러움

분류에서Dev

C ++에서 '<<'에 대한 연산자 오버로드 사용에 대해 혼란 스러움

분류에서Dev

C #에서 참조 / 값 전달에 대해 혼란 스러움

분류에서Dev

Python (2.4.3)에서 set ()의 출력에 대해 혼란 스러움

분류에서Dev

임베디드 리소스에 대해 혼란 스러움

분류에서Dev

연산자 삭제 재정의가 작동하는 방식에 대해 혼란 스러움

분류에서Dev

R의 2 차원 요소에 대해 혼란 스러움

분류에서Dev

Swift : AnyObject 선언에 대해 혼란 스러움

분류에서Dev

장고 제네릭 뷰에 대해 약간 혼란 스러움

분류에서Dev

X86 분할에 대해 혼란 스러움

분류에서Dev

API 관련성과 Django에 대해 혼란 스러움

분류에서Dev

Docker에 대해 여전히 혼란 스러움

분류에서Dev

파이썬의 size () 함수에 대해 혼란 스러움

분류에서Dev

함수 shutdown (fd, options)의 동작에 대해 혼란 스러움

분류에서Dev

Douglas Crockford의 객체 기능에 대해 혼란 스러움

분류에서Dev

@transactional 값 설정에 대해 혼란 스러움

분류에서Dev

활동과 수업에 대해 혼란 스러움

분류에서Dev

우분투 (Linux)의 보안에 대해 혼란 스러움

Related 관련 기사

  1. 1

    Python OR 연산자에 대해 혼란 스러움

  2. 2

    nodeJS에 대해 혼란 스러움

  3. 3

    가치에 대해 혼란 스러움

  4. 4

    DropDownListFor에 대해 혼란 스러움

  5. 5

    ContentType에 대해 혼란 스러움

  6. 6

    WindowBuilder에 대해 혼란 스러움

  7. 7

    EKEventStatus에 대해 혼란 스러움

  8. 8

    React / Typescript-구문에 대해 혼란 스러움

  9. 9

    파이썬 구문에 대해 혼란 스러움

  10. 10

    Laravel 공급자 및 계약에 대해 혼란 스러움

  11. 11

    Perl에서 결합 및 분할에 대해 혼란 스러움

  12. 12

    2 차원 배열로 문자열을 가져 오는 것에 대해 혼란 스러움

  13. 13

    C ++에서 '<<'에 대한 연산자 오버로드 사용에 대해 혼란 스러움

  14. 14

    C #에서 참조 / 값 전달에 대해 혼란 스러움

  15. 15

    Python (2.4.3)에서 set ()의 출력에 대해 혼란 스러움

  16. 16

    임베디드 리소스에 대해 혼란 스러움

  17. 17

    연산자 삭제 재정의가 작동하는 방식에 대해 혼란 스러움

  18. 18

    R의 2 차원 요소에 대해 혼란 스러움

  19. 19

    Swift : AnyObject 선언에 대해 혼란 스러움

  20. 20

    장고 제네릭 뷰에 대해 약간 혼란 스러움

  21. 21

    X86 분할에 대해 혼란 스러움

  22. 22

    API 관련성과 Django에 대해 혼란 스러움

  23. 23

    Docker에 대해 여전히 혼란 스러움

  24. 24

    파이썬의 size () 함수에 대해 혼란 스러움

  25. 25

    함수 shutdown (fd, options)의 동작에 대해 혼란 스러움

  26. 26

    Douglas Crockford의 객체 기능에 대해 혼란 스러움

  27. 27

    @transactional 값 설정에 대해 혼란 스러움

  28. 28

    활동과 수업에 대해 혼란 스러움

  29. 29

    우분투 (Linux)의 보안에 대해 혼란 스러움

뜨겁다태그

보관