我需要使用 <RelativeLayout
android:id="@+id/passwordRelativeLayout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="83"
android:gravity="center">
<ImageView
android:id="@+id/passwordImageView"
android:layout_width="40dp"
android:layout_height="40dp"
android:adjustViewBounds="true"
android:contentDescription="@string/email_ph"
android:gravity="center_horizontal"
android:src="@mipmap/lock_icon"
android:layout_alignParentBottom="true"
android:layout_toStartOf="@+id/passwordTextView" />
<TextView
android:id="@+id/passwordTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/passwordEditText"
android:labelFor="@+id/passwordEditText"
android:text="@string/password"
android:textColor="@color/white"
android:textSize="24sp" />
<EditText
android:id="@+id/passwordEditText"
android:layout_width="500dp"
android:layout_height="45dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_below="@+id/passwordTextView"
android:layout_gravity="center_horizontal"
android:background="@mipmap/text_box_background"
android:gravity="center"
android:inputType="textPassword" />
</RelativeLayout>\
修改数据框中的某些列。例如,
dplyr
如何分配回数据框select(mtcars,hp:am)+99
?
mtcars
会起作用,但它使用绝对索引4:9,我想避免这种情况(这就是我使用mtcars[,4:9]=select(mtcars,hp:am)+99
dplyr
操作的原因。)
答案 0 :(得分:2)
你冷静借用subset()
命令中的一些逻辑来获取变量索引列表
varindex <- function(x, select) {
if (missing(select))
TRUE
else {
nl <- as.list(seq_along(x))
names(nl) <- names(x)
eval(substitute(select), nl, parent.frame())
}
}
然后使用它来更新data.frame
cols <- varindex(mtcars, hp:am)
mtcars[,cols] <- mtcars[,cols]+99
如果您想坚持dplyr
,正确使用的功能是mutate()
,而不是select()
。使用
mutate_at(mtcars, vars(hp:am), function(x) x+99)