我已按以下格式获得结果:
Parameter Wert
...
99 se.m 0.1000
100 se.m 0.1000
101 se.st 0.5000
102 se.st 0.500
...
我想将列Parameter
拆分为两列:Parameter
和Insentität
。应该在点.
所在的位置进行拆分。然后在结果列Intensität
中,我希望将所有m
替换为2
的值,并将所有st
替换为3
的值。结果应如下所示:
Parameter Intensität Wert
...
99 se 2 0.4000
100 se 2 0.0396
101 se 3 0.2702
102 se 3 1.1566
...
我已经设法获得这种格式,但我确信有一种更优雅的方式。
我获得结果的方式很笨拙。我最初在输出中有两列:se.m
和se.st
。我手动更改了列名:
colnames(results) <- c("2", "3")
然后将两列合并为1列。然后我在每一行中添加了一个包含字符se
的列。
results <- melt(results)
cbind( Parameter ="se", results)
我知道还有另一个代词。例如,使用extract
中的tidyr
,但我无法正确使用表达式语法。另外stringr
包,我可以使用str _ match
函数,也可以使用strsplit
。所有这些看起来都很棒,但我似乎无法将它们应用到我的问题中。我被困在这里。有类似的问题,但我找不到适合我的解决方案。
PS:我赞美任何意见 - 评论,评论,提示。我是一个学习者,任何建议对我都很有价值。
答案 0 :(得分:2)
我们可以使用separate
library(tidyr)
library(dplyr)
separate(df1, Parameter, into = c("Parameter", "Intensitat")) %>%
mutate(Intensitat = recode(Intensitat, m = 2, st = 3))
# Parameter Intensitat Wert
#1 se 2 0.1
#2 se 2 0.1
#3 se 3 0.5
#4 se 3 0.5
或者,我们可以使用read.table
分隔sep
,使用&#34; Wert&#34; transform
和cbind
分隔cbind(transform(read.table(text= as.character(df1$Parameter),
col.names = c("Parameter", "Intensitat"), sep="."),
Intensitat = ifelse(Intensitat=="m", 2, 3)), df1["Wert"])
# Parameter Intensitat Wert
#99 se 2 0.1
#100 se 2 0.1
#101 se 3 0.5
#102 se 3 0.5
。柱
<ImageView
android:id="@+id/item_image"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:background="@android:color/transparent"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:src="@drawable/tabless"></ImageView>