私は、データフレームのすべての行に関数を適用したいです。適用を使用すると、結果はそれ自体がデータフレームではなく、リストまたは行列のように見えますか? (私はそれがデータフレームがないだけという、私が手出力から伝えることができるように十分なRを知らない)R:データフレームを返す適用のような機能?
右関数は、データのすべての行に関数を適用するために使用することですフレーム、新しいデータフレームを返しますか?
私は、各行に適用する機能:
map_uri <- function(request){
ret <- request
uri_stem <- uri_map[uri_map[,1] == request["cs-uri-query"],2]
if(length(uri_stem) > 0){
ret <- request
ret["cs-uri-stem"] <- uri_stem
ret["cs-uri-query"] <- "-"
}
if(request["cs-uri-stem"] == "/index.html"){
ret["cs-uri-stem"] = "/"
}
return(ret)
}
私がしようとしています何:清め[、c。で私にエラー
Fehlerを与える
cleansed <- apply(requests, 1, map_uri) cleansed[,c("cs-uri-query", "cs-uri-stem")]
を( "CS-URI-ステム"、 "CS-URI-クエリ")]:Indizierung außerhalbデルGrenzen
(インデックス範囲外の)何らかの理由で
、間違ったインデックスの上に作る方法で構造が変化。
本実施例にする[編集]
データ:
uri_map.tsv変換関数のhttp://pastebin.com/XhUuTMqA
uri_map <- read.table("http://pastebin.com/raw/XhUuTMqA", sep="\t", header=FALSE)
入力データ:
リクエスト< - read.tableを( "http://pastebin.com/raw/b7ja4rKn"、9月=」」、ヘッダ= TRUE)
'apply'転置:'((行列を適用します1:4,2)、1、アイデンティティ) 'を含む。 – Roland
@Rolandどうもありがとうございました!それは単に文書化されていないか、十分に注意深く読まなかったのですか? – kutschkem
これは 'help(" apply ")'に書かれていますが、ややわかりにくいです。 – Roland