lapply
データフレーム内の文字列を分割しようとしています。文字列はすべて に似てい"02D_48M_RHD"
ます。「D」の前と「M」の前の数字を取得しようとしています。
私の使用はlapply
うまくいっているようです:
a <- lapply(res$description, strsplit, split="[DM]_", fixed=FALSE)
> a[[1]]
[[1]]
[1] "02" "48" "RHD"
ただし、私の人生では、a [ 1 ] のベクトルの最初の要素だけにアクセスする方法を理解することはできません。ドキュメントa[[1]][1]
は、最初の要素を提供する必要があることを示唆していますが、これが起こることです:
> a[[1]][1]
[[1]]
[1] "02" "48" "RHD"
これが機能しない理由がわかりません。R は、これがベクトルであると教えてくれますが、長さが 1 であるとも言っています。
> is.vector(a[[1]])
[1] TRUE
> length(a[[1]])
[1] 1
何を誤解しているのかわかりません。私lapply
が期待する以外の方法で出力を提供していますか? 長さ 3 のベクトルのリストを期待すると、そのようになります。または、それは私が得ているものですが、間違ってアクセスしようとしていますか?
最終的には、これらの情報ごとに 1 つずつ、3 つの列をデータ フレームに追加したいので、その方向に進むのに役立つものは何でも大歓迎です。