如何提取testdata数据集的logprice字段?testdata[1]$logprice调用失败
如何正确提取logprice字段
嘿,我来帮你搞定这个R语言的数据提取问题!
从你给出的str(testdata[1])输出能看出来,testdata[1]是长度为1的列表,这个列表里唯一的元素才是你要的那个包含13个变量的数据框。而你用testdata[1]$logprice无效的原因是:testdata[1]本身还是列表类型,它的元素是数据框,但你直接在列表上用$logprice,列表里并没有叫logprice的元素——logprice是在列表内部的数据框里的。
这里有几种可靠的提取方式:
最直接的方法:用双括号取出列表中的数据框,再提取字段
双括号[[ ]]会直接返回列表中的元素(也就是那个数据框),之后用$就能正常提取logprice了:testdata[[1]]$logprice用双括号直接提取嵌套的字段
你也可以一步到位,直接指定数据框和字段的位置:testdata[[1]][["logprice"]]如果列表元素有命名,用名称访问(可选)
要是你这个列表的元素有对应的名称(比如str(testdata)可能会显示类似$ my_data: 'data.frame'...),那你还可以这样写:testdata$my_data$logprice把
my_data换成实际的元素名称就行,这样可读性会更好。用
with()简化代码(可选)
如果你不想反复写testdata[[1]],可以用with()函数把数据框作为上下文:with(testdata[[1]], logprice)
内容的提问来源于stack exchange,提问作者Kyle
相关产品推荐
相关产品推荐

