私は最初にこの質問を参照しましたが、私の場合、回答は役に立ちませんでした。
各コンポーネントに数字で始まり、その後に単語 (文字) が続く要素が含まれるリストがあります。要素の先頭にある一部の数字には、1 つ以上の先行ゼロがあります。リストのごく一部を次に示します。
x <- list(el1 = c("0010 First",
"0200 Second",
"0300 Third",
"4000 Fourth",
"0 Undefined",
"60838 Random",
"903200 Haphazard"),
el2 = c("0100 Hundredth",
"0200 Two hundredth",
"0300 Three hundredth",
"0040 Fortieth",
"0 Undefined",
"949848 Random",
"202626 Haphazard"),
el3 = c("0010 First",
"0200 Second",
"0300 Third",
"0100 Hundredth",
"0200 Two hundredth",
"0300 Three hundredth",
"0 Undefined",
"60838 Random",
"20200 Haphazard"))
私が達成したいのは、利用可能な先行ゼロを削除し、先行ゼロで0 Undefined
始まらない他のすべての要素に加えて、先頭に単一のゼロを保持することです。つまり、リストを次のようにします。
x <- list(el1 = c("10 First",
"200 Second",
"300 Third",
"4000 Fourth",
"0 Undefined",
"60838 Random",
"903200 Haphazard"),
el2 = c("100 Hundredth",
"200 Two hundredth",
"300 Three hundredth",
"40 Fortieth",
"0 Undefined",
"949848 Random",
"202626 Haphazard"),
el3 = c("10 First",
"200 Second",
"300 Third",
"100 Hundredth",
"200 Two hundredth",
"300 Three hundredth",
"0 Undefined",
"60838 Random",
"20200 Haphazard"))
私は何時間も成功していません。私ができる最善のことはこれです:
lapply(x, function(i) {
ifelse(grep(pattern = "^0+[1-9]", x = i),
gsub(pattern = "^0+", replacement = "", x = i), i)
})
ただし、先頭にゼロがあるリストコンポーネントの要素を返すだけで、残りの要素は含まれず、含まれていない要素も返されません0 Undefined
。
誰か助けてくれませんか?