Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当只需要一个元素[R]时,subseting by[]返回多个元素。为什么?_R_String_Matrix_Subset - Fatal编程技术网

当只需要一个元素[R]时,subseting by[]返回多个元素。为什么?

当只需要一个元素[R]时,subseting by[]返回多个元素。为什么?,r,string,matrix,subset,R,String,Matrix,Subset,考虑一下1960年的公告牌热100 将数据集加载到[r]: initFile<-read.csv("Billboard Hot100 1960.csv", header = TRUE, sep = ",") 这大约是预期的三倍多的信息—我的印象是只应返回直接位于[1]行标识符右侧的字符串 进一步检查后,似乎initFile$Title[1]毕竟不是字符串 typeof(initFile$Title[1]) [1] "integer" 最后,强制元素使用字符返回所需的输出 as.char

考虑一下1960年的公告牌热100

将数据集加载到[r]:

initFile<-read.csv("Billboard Hot100 1960.csv", header = TRUE, sep = ",")
这大约是预期的三倍多的信息—我的印象是只应返回直接位于[1]行标识符右侧的字符串

进一步检查后,似乎initFile$Title[1]毕竟不是字符串

typeof(initFile$Title[1])
[1] "integer"
最后,强制元素使用字符返回所需的输出

as.character(initFile$Title[[1]])
[1] "Theme from A Summer Place"

为什么initFile$Title[1]首先不返回单个字符串元素?其他语言,如MATLAB,在元素访问例程中似乎更简洁——是否有一种更紧凑的方式来访问这些信息,而不需要提醒[r]它正在查看字符

r提醒您,您的数据不是字符串。这是一个因素。如果删除现有的冗余参数read.csv header=TRUE和sep=,这是默认值,并添加StringsAsAffactors=FALSE,您将得到您所期望的结果,但您可能需要先复习一些基本的R。至少看看?factor和?read.csv。
as.character(initFile$Title[[1]])
[1] "Theme from A Summer Place"