如何将数字与R中的填充连接?

时间:2019-01-29 13:13:59

标签: r concatenation concat

我有8个一或两位数字整数变量的数据集,我想将它们连接起来,但是请以1开头的数字以0开头填充数字。

例如,图像上的第一个示例将变为“ 1215020401010102”。

我不想要完整的代码解决方案,只是什么功能可以帮助我。我一直在尝试将功能与sapply一起使用,但并没有获得成功。

Dataset

2 个答案:

答案 0 :(得分:2)

提供此数据

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:orientation="horizontal"
tools:context=".MainActivity">
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:paddingTop="245dp">
    <EditText
        android:id="@+id/name"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:layout_above="@+id/email_EditText"
        android:background="@drawable/edit_text_style"
        android:fontFamily="sans-serif"
        android:gravity="center"
        android:hint="Username"
        android:inputType="text"
        android:textColor="#fff"
        android:textColorHint="#fff" />
    <EditText
        android:id="@+id/email_EditText"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:layout_above="@+id/password_EditText"
        android:layout_marginTop="6dp"
        android:background="@drawable/edit_text_style"
        android:gravity="center"
        android:hint="Email"
        android:inputType="textEmailAddress"
        android:textColor="#fff"
        android:textColorHint="#fff" />
    <EditText
        android:id="@+id/password_EditText"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:layout_above="@+id/phone_EditText"
        android:layout_marginTop="6dp"
        android:background="@drawable/edit_text_style"
        android:gravity="center"
        android:hint="Password"
        android:inputType="textPassword"
        android:textColor="#fff"
        android:textColorHint="#fff" />
    <EditText
        android:id="@+id/phone_EditText"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:layout_above="@+id/signUp_Button"
        android:layout_marginTop="6dp"
        android:background="@drawable/edit_text_style"
        android:gravity="center"
        android:hint="Phone#"
        android:inputType="phone"
        android:textColor="#fff"
        android:textColorHint="#fff" />
    <Button
        android:id="@+id/signUp_Button"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="40dp"
        android:background="@drawable/button_style_selector"
        android:fontFamily="verdana"
        android:text="Signup"
        android:textAllCaps="false"
        android:textColor="#000"
        android:textSize="22dp" />
</RelativeLayout>

我们可以使用set.seed(1) (dat <- as.data.frame(matrix(sample(10, 15, T), nrow = 5))) # V1 V2 V3 #1 3 9 3 #2 4 10 2 #3 6 7 7 #4 10 7 4 #5 3 1 8 do.callpaste0lapply这里:

formatC

答案 1 :(得分:0)

这是sprintf

的一个选项
do.call(sprintf, c(dat, fmt = "%02d%02d%02d"))
#[1] "030903" "041002" "060707" "100704" "030108"

或使用tidyverse

library(tidyverse)
dat %>% 
   mutate_all(str_pad, pad = '0', width = 2) %>% 
   unite(V1, V1, V2, V3, sep='') 
   # or if there are many columns use
   # unite(V1, !!! rlang::syms(names(.)), sep='')

数据

dat <- structure(list(V1 = c(3L, 4L, 6L, 10L, 3L), V2 = c(9L, 10L, 7L, 
 7L, 1L), V3 = c(3L, 2L, 7L, 4L, 8L)), class = "data.frame", row.names = c(NA, 
 -5L))