我正在使用R中的USArrests data.frame,我需要查看每种犯罪(谋杀,殴打和强奸)的状态,这表示最小和最大的犯罪率。我想我必须计算每种犯罪的最大和最小,而我已经做到了。
其中(USArrests $ Murder ==分钟(USArrests $ Murder))[1] 34
问题是我无法检索第34行的状态,而只能检索整行:
USArrests [34,]谋杀突袭UrbanPop强奸北达科他州0.8 45 44 7.3
我刚开始使用R,所以任何人都可以帮我吗?
[要从R中的dataframe
中提取列,可以使用$
运算符,后跟列名:USArrests$Murder
,或使用[
运算符,并在逗号后使用列名:[C0 ]
这两个命令都将提取整列。
要查找向量列中值最低的元素,可以使用USArrests[, "Murder"]
函数。
您的命令将成为:
which.min
我通常会建议对这种问题采取不同的方法,但是为简便起见,我将提供以下解决方案,也许以后会以更深思熟虑的方式返回。
您可以使用> USArrests[which.min(USArrests$Murder), "Murder"]
[1] 0.8
功能查看数据框的特定“属性”。
例如:
attributes()
将为您提供以下输出。
attributes(USArrests)
所以现在我们知道数据框由“名称”(负责人的姓名),“ row.names”(州名称)组成,并且“类”是一个数据框。作为R的新手,必须注意的是,在以上结果中,行ID仅针对每个新行中的第一项给出。在最后一步中,这将更有意义。
利用这些知识,我们可以使用属性通过执行以下操作来仅找到状态:
$names
[1] "Murder" "Assault" "UrbanPop" "Rape"
$class
[1] "data.frame"
$row.names
[1] "Alabama" "Alaska" "Arizona" "Arkansas" "California" "Colorado"
[7] "Connecticut" "Delaware" "Florida" "Georgia" "Hawaii" "Idaho"
[13] "Illinois" "Indiana" "Iowa" "Kansas" "Kentucky" "Louisiana"
[19] "Maine" "Maryland" "Massachusetts" "Michigan" "Minnesota" "Mississippi"
[25] "Missouri" "Montana" "Nebraska" "Nevada" "New Hampshire" "New Jersey"
[31] "New Mexico" "New York" "North Carolina" "North Dakota" "Ohio" "Oklahoma"
[37] "Oregon" "Pennsylvania" "Rhode Island" "South Carolina" "South Dakota" "Tennessee"
[43] "Texas" "Utah" "Vermont" "Virginia" "Washington" "West Virginia"
[49] "Wisconsin" "Wyoming"
要在您确定为北达科他州的列表中找到第34个州,我们可以按照以下方式简单地给出该州的行ID。
attributes(USArrests)$row.names
哪个会给你。...
attributes(USArrests)$row.names[34]
同样,这可能不是最优雅的方法,但是它将适合您的情况。
希望这对您有所帮助,并且编码愉快。