我正在搜索几个小时,但却无法找到如何按最后一个数据框列的特定值获取行。
我有这些数据:
X1 X2 X3 X4 X5 X6
1 48.17695413 39.43730616 3.10972063 2.61426454 6.3099154 1
2 -8.65390666 46.85736629 30.87960405 44.27429466 -41.1696044 1
3 30.77856742 21.74027874 48.19661027 -21.80938770 36.6618114 -1
4 -24.59780029 21.06814152 -39.33865333 -42.97304431 -4.8804663 1
5 7.27249086 34.76682615 -45.85831994 13.88918648 47.3615198 1
6 38.67101648 38.26274828 14.08033108 49.82309644 -33.6286389 1
7 -25.51283904 -45.70014705 -26.42990421 28.78326026 35.1519014 -1
8 -2.39959008 -2.97487159 17.50174041 12.75989751 -45.0535343 1
9 37.15204622 31.15702239 7.78025487 42.89215957 22.0417423 1
10 -47.73408335 -15.17439773 27.97187380 35.77547702 32.3852375 -1
11 -1.02035564 26.50974274 -30.74983917 -22.68985184 -38.8585380 1
12 22.58425138 -19.56519226 1.71576410 -34.55656213 2.9134512 -1
13 -9.38323175 -19.29783276 16.63345252 40.99594080 -29.0354038 1
14 -27.58411688 48.17471695 46.65622143 -30.48450849 14.9938999 -1
15 38.80037898 -47.36718861 37.63894415 -16.63851268 40.3090175 -1
16 43.51794997 18.72671039 37.09440767 -34.12630649 -15.1023072 -1
17 -32.74301919 11.90051064 2.80043937 46.51653604 -28.9494123 1
18 35.68157670 14.81230436 -36.31750911 47.51496385 -37.1951638 1
19 -40.50665190 -34.03052327 29.38828175 1.34482600 -34.8719438 -1
20 41.07689315 43.92234944 2.65074784 -11.53928787 32.2066362 1
21 17.66030733 -14.92802922 12.11998039 15.00645671 21.2442750 -1
22 -33.64110310 10.86618125 -39.01640368 40.54307269 39.6113877 1
23 38.51638250 22.13161306 -12.81533381 33.42758568 2.4696089 1
24 -45.89782895 24.45276037 21.59339122 0.08909106 -12.7604788 -1
25 -29.12297575 -19.68773385 2.79124135 31.15364150 -18.4448177 1
26 38.31280286 -30.47305727 26.44094897 -4.80549014 25.7998981 -1
27 16.18606397 -31.02221894 -49.26810868 -25.00526297 6.1112312 -1
28 48.40843189 -21.66230679 -0.12366320 3.17854472 3.8587339 1
29 40.21567111 -48.13758477 24.93614273 28.69090671 -26.4871368 1
30 1.51516791 -26.42521115 -12.80261928 16.00497463 -29.2357545 1
31 -13.19148520 41.22625608 -19.86476800 32.65111602 35.2801044 1
32 20.27577299 -25.47924414 21.95390093 -1.85122907 29.2785393 -1
33 5.61452187 -5.35398889 10.64601119 -44.01104380 17.1113494 -1
34 -44.78640135 -3.47331611 -1.96771566 -12.24545513 -43.1549257 1
35 25.08181627 33.58752318 28.18229569 -11.75732762 19.3758997 -1
36 14.11425164 0.61068691 35.01117583 32.70457520 -39.7158644 1
37 47.13524659 5.07630450 21.24833809 -47.87322641 -16.3222777 -1
38 -30.68369164 44.48609874 17.87844354 38.41511346 -15.1628380 1
39 -9.82401448 47.94880943 -27.94965848 13.46387044 4.4655846 1
40 -16.53469554 13.49646898 27.13568562 48.88138534 13.3870898 1
41 5.66302277 -5.13428820 28.43233454 -38.00809828 34.1122602 -1
42 0.26656424 -30.29644771 -9.31532411 4.33435896 -6.6514673 -1
43 -23.25400757 43.53289178 31.26810214 26.17365187 10.1966180 1
44 -10.83291732 19.52698252 -46.98810957 -26.03460227 3.7786703 1
45 40.12858390 38.52749658 47.63697251 -43.28443427 -2.9563767 -1
46 -21.25995888 11.08579396 17.64257259 49.27916457 14.6470747 1
47 -14.52012877 4.73049677 29.67983205 11.74713625 0.9333332 -1
48 32.01571801 26.66981509 -4.45819930 -21.25811025 13.7524510 1
49 -44.85126981 -28.82791162 -40.01033327 -7.61150781 33.2228162 -1
50 37.97772161 -20.30672238 -43.07964963 30.13702892 -15.0164150 1
51 29.08064781 15.27835699 -37.16766285 15.21206819 -2.2740492 1
52 -40.48949617 -10.51356671 41.26806469 -29.10868146 -34.6600571 -1
53 30.29430094 -46.88648379 -18.59240613 -22.08509911 -5.0840363 -1
54 2.14905366 -12.34249272 15.41978475 -23.87309705 49.7638849 -1
55 -10.86263228 37.23807719 -38.22960216 24.74888896 39.6630126 1
56 40.46251560 -7.42908975 5.45871421 32.46898202 26.3232591 1
57 -49.35276681 48.47594881 -6.54060557 13.13420576 -30.6234515 1
58 -32.55195227 -24.04979744 -0.90411811 -28.68508857 -14.3195416 -1
59 -41.40694165 -32.71186997 -49.91184238 -47.44685916 -30.7997680 -1
60 -40.25409685 -38.63885684 28.98155658 17.04148985 -29.1016112 -1
61 6.55163422 47.65563791 6.50914682 -43.26901732 12.7081363 -1
62 -34.60404077 0.70960103 40.22226434 22.20810365 4.2410096 -1
63 -34.34207600 19.25329904 41.07820110 5.01101012 -11.3040819 -1
64 -26.09685140 26.89760709 0.13924714 6.23782547 30.3378282 -1
65 2.77869620 3.46297752 -16.93740098 -49.87237649 10.3518355 -1
66 -34.43377707 -11.54497443 -0.03308267 18.72712739 -44.7833285 1
67 15.03299868 -7.64621769 49.49413652 -30.31192285 33.8391314 -1
68 -18.59508867 -25.63164262 -22.74283541 34.89008134 21.4274962 1
69 36.03547243 -1.33956145 8.09449207 -15.73835583 -42.1537299 1
70 -12.76628897 -40.29422191 5.18926801 4.31100223 -2.7201807 -1
71 29.70183801 -47.01430625 -0.10015091 -16.11912933 29.4462418 -1
72 19.68328992 -43.62236075 39.62997815 -47.02085708 46.5351474 -1
73 13.60548099 -14.21226230 -16.40881621 -7.07651307 30.7896358 -1
74 48.97985228 28.08398050 -21.35308585 -7.14836787 22.5584449 1
75 40.56481351 44.48666607 39.73892389 -28.47008093 -37.2993243 1
76 38.65095733 -25.91175342 -42.96530839 28.70831673 30.8613458 1
77 -29.94483940 -8.39585150 -28.69421113 -26.08410181 -33.0075214 1
78 -8.54073463 28.14237990 20.12624827 3.81252319 -38.4828388 1
79 48.69534343 -32.77915958 8.73959693 -4.19653771 37.0420157 -1
80 -11.14250922 -41.17423620 -49.40661241 -20.27474060 25.6862722 -1
81 -31.04337221 11.66699962 5.31555978 -49.68183776 16.6878605 -1
82 -46.18124976 -40.82516073 -38.52873622 -43.34530456 -30.9348033 -1
83 29.78327069 -16.52878316 19.70788015 22.03853386 -6.8582143 1
84 -34.10644981 -24.50293470 3.68809036 -24.28773544 38.5350600 -1
85 -0.10980293 33.79236367 30.77957788 -44.64550817 -15.9467584 -1
86 42.79020275 -49.23286503 -27.00992972 -34.40842158 31.3848205 -1
87 41.49881038 -24.64161024 -22.96349106 20.57055852 14.4795177 1
88 -37.18016476 -6.11188293 -9.10155319 -1.89142874 -45.2628603 1
89 -2.62336845 3.08700614 -15.49178469 26.82823380 -32.2975439 1
90 -4.11448206 30.86272427 -46.10658828 44.78534460 46.8005464 1
91 -45.66761896 -32.70136176 24.77845098 34.32040859 39.1300678 -1
92 31.28242453 40.31769738 -20.26872914 -10.96235495 -22.1892530 1
93 3.80620165 46.78701940 4.35569431 45.98498959 -40.7786838 1
94 0.81615241 24.83391126 9.15402786 -19.10655624 -35.2444648 1
95 -41.83242584 -21.35343621 41.83379223 41.67253454 13.9536310 -1
96 47.49085810 -3.14880335 -37.31183154 9.95015414 -0.4881163 1
97 35.54580712 32.30499793 31.31646449 -11.14545153 8.4006399 -1
98 41.21926124 40.27996780 39.20314582 30.17564565 -32.0637980 1
99 35.71568001 -9.81678010 38.08503181 -39.24719978 -25.6364958 -1
100 -26.34892268 48.57874219 -46.59255797 14.88185874 -25.8851135 1
101 -10.52907093 -18.00235135 5.27036686 31.21748420 -34.4811461 1
102 -29.36565380 30.24585389 40.90974440 26.51184569 -17.7345452 1
103 7.87903350 -1.09457127 -15.66868282 -9.03650313 9.9299264 -1
104 42.60331560 23.64356695 25.10587261 -20.22202369 32.7391773 -1
105 34.14003735 -12.71724263 44.14021997 -25.71712218 -31.9221933 -1
106 -12.44853460 -47.72728265 48.57131951 7.67443904 33.7671637 -1
107 -14.09033376 14.33033464 -32.60425429 -38.24150169 6.7293922 -1
108 34.07870485 -46.51382137 49.84296632 -40.89916174 -43.6066909 -1
109 33.01124896 -49.23768658 14.13645993 -44.37299115 4.8207535 -1
110 10.36037307 -33.63043843 21.71480323 -28.38937459 17.0479339 -1
111 -5.79975462 -31.78398826 -11.77024557 -1.45170258 -34.1461023 1
112 -17.11579286 -36.18001689 -20.23241029 5.67694043 42.8745132 -1
113 -38.41568830 3.69573398 -40.29819805 33.50354005 45.8279202 1
114 -29.81968126 -1.95940533 -20.59776224 -36.95698555 29.9862751 -1
115 2.68202946 18.95755879 -24.05982686 -25.90978143 9.7582864 1
116 42.61640511 27.26011581 -46.40585079 4.26192286 29.0983045 1
117 3.67996979 49.15965132 27.85841639 -26.41195238 -43.4398819 1
118 48.34243569 2.41912773 7.61683735 -29.50917231 -19.5587220 1
119 49.62098389 35.17561462 7.30517844 12.31159559 45.7202338 1
120 -0.02593545 19.94858689 17.98142134 -39.22495318 5.3603052 -1
121 -22.92342477 40.02773573 -23.85643139 12.96254296 20.0602848 1
122 -21.57715647 -17.06917104 -29.41318592 36.47456393 2.7248362 1
123 29.80646805 -27.48751035 31.44713799 11.61041714 -44.3767835 1
124 -17.70907494 0.09368618 -49.75451597 -37.48356637 -6.3979823 1
125 28.88035215 -14.24206311 -0.16729170 -42.50496686 -26.9064285 -1
126 35.68704489 -5.52500989 38.28872927 13.51765934 -23.1683312 1
127 -2.63194633 0.26762190 -12.58921986 -28.77510269 31.0379969 -1
128 30.89340176 29.63612082 -19.92898253 -46.91745718 13.4511064 -1
129 -35.64908991 -0.62351443 -1.92955756 -11.38650151 -26.3827307 1
130 15.95162002 12.78902963 34.69599115 21.07257789 -0.7049875 1
131 4.76377490 -44.94423338 1.10263422 46.68685843 -21.0213374 1
132 -7.37550976 14.72977384 -6.50357553 29.58541936 12.0437405 1
133 -35.41488789 15.30446517 -34.03278021 6.36947788 3.5355144 1
134 35.85945931 32.76696808 46.98049189 16.64510823 2.3072411 1
135 16.23364908 -36.40773527 35.59254617 21.82013777 -8.8757714 -1
136 26.42379180 9.73426250 20.27802824 -36.71915454 -14.1613290 -1
137 -36.27642491 -31.46302165 -36.49763539 -9.67619771 15.6194962 -1
138 -47.50820657 -39.16183484 -38.03864804 5.07058196 15.7445797 -1
139 -21.84303377 10.98107803 -0.40645790 41.45426797 -28.7873543 1
140 -0.95827512 -1.69135577 32.42284888 -19.45907820 25.6286883 -1
141 -25.38794791 -18.17971012 -35.69542712 -14.09463407 28.4907040 -1
142 26.73252139 25.03299059 -12.28499415 30.17292826 -10.5327087 1
143 -43.16460560 -29.86155320 -38.54692092 -45.51337271 2.9275517 -1
144 8.24473461 21.64336434 -27.36689942 -27.98296309 21.6617776 -1
145 4.97203793 33.32681707 -38.52586835 -10.99964115 -36.9242265 1
146 -31.53733450 -1.02430454 40.17001574 18.02365675 -48.1134572 1
147 -12.77233372 24.44318922 -2.01369112 -29.32467558 -36.7925263 1
148 -2.59054168 9.29519264 -43.52171838 -4.17696589 17.9192101 1
149 44.38525802 16.66222662 14.42328799 42.99000488 36.5686033 1
150 24.20129897 -6.10695339 3.54532897 5.21023085 8.3394838 -1
151 -25.18552805 32.60349229 2.03504197 6.99553278 -38.9368815 1
152 11.56381064 -21.92995299 15.23446254 -35.43917607 -41.3730330 -1
153 -13.90532325 20.56872472 -42.20650226 -38.18344893 15.1799403 -1
154 -4.53937219 -15.48650358 30.36769438 -48.65573135 -4.2165786 -1
155 -19.33582416 37.94649800 12.92351044 12.55487665 -23.2021390 1
156 -27.08828198 -41.94863634 19.97831776 -31.80869636 -23.1660966 -1
157 -19.96743444 39.69741114 -13.42580225 -48.12533744 -46.1491481 1
158 9.16460447 12.19791272 3.40255061 46.28932201 -13.4358461 1
159 21.10104361 -36.03372062 19.19042345 36.96155972 38.7752557 -1
160 -13.60133037 33.48209793 25.34574629 -39.59111779 26.5550812 -1
161 -13.08967145 9.11082048 2.15857571 -6.17023725 21.4346305 -1
162 11.66161026 -45.03933019 -16.59182839 18.57721794 41.4250354 -1
163 41.77852059 45.44966395 22.19019849 -35.77017984 -16.8267572 1
164 -21.51823819 -45.14922628 14.55832121 0.94149860 -11.4418946 -1
165 7.77473154 -22.52768062 -6.71764023 -2.76005429 21.3051374 -1
166 24.17912751 11.42646645 41.03107578 38.10855299 -4.4167988 1
我想要做的是在X6 == -1(例如)时获取所有行。此外,列的名称和数量可以更改,因此我需要找到最后一列的名称。我这样做了:
simple_learner <- function(df)
{
lastColName <- colnames(df)[ncol(df)]
#....
}
所以现在,我试图获得像那样的值=&gt; out <- df[df$lastColName == -1, ]
但是,我得到了这个输入......
> simple_learner <- function(df)
+ {
+ lastColName <- colnames(df)[ncol(df)]
+ as.numeric(df$lastColName)
+ out <- df[df$lastColName == -1, ]
+ out
+ }
>
> simple_learner(read.csv("Exercise-4.csv"))
[1] X1 X2 X3 X4 X5 X6
<0 rows> (or 0-length row.names)
为什么?
答案 0 :(得分:1)
尝试
out <- df[df[,ncol(df)] == -1, ]
或
out <- df[df[,lastColName] == -1, ]
在你的功能中。
答案 1 :(得分:0)
请通过以下解决方案:
使用以下R代码获取最后一列索引(我正在处理iris
数据集):
lastcolumn<-max(ncol(iris))
lastcolumn
[1] 5
现在,使用以下代码按照最后一个数据框列的特定值检索行(我正在检索具有值virginica
的最后一列的行):
iris[iris[,lastcolumn]=="virginica",]
希望它适合你。
答案 2 :(得分:0)
我遇到了一个 silimar 问题,最终通过查看 dplyr::filter
的帮助页面解决了它。最后给出了一个很好的例子:
# To refer to column names that are stored as strings, use the `.data` pronoun:
vars <- c("mass", "height")
cond <- c(80, 150)
starwars %>%
filter(
.data[[vars[[1]]]] > cond[[1]],
.data[[vars[[2]]]] > cond[[2]]
)
在上面的示例中,这可能导致:
df %>%
filter(.data[[colnames(df)[[ncol(df)]]]]== -1)