我正在尝试根据多个现有值将数据从一列移动到另一列。我研究并找到了一个简单的单列解决方案 - 如下面的当前代码所示。但是,我想为所有行做一个方法。我一直在尝试研究一种方法,但似乎无法找到一种方法将可能的循环应用于此函数。任何帮助都会很棒。我使用的是最新版本的R和RStudio。谢谢!
CURRENT DATAFRAME:
Row #People
A 3
A 2
A 2
B 1
B 1
C 3
C 3
C 2
C 1
Desired DataFrame:
Row: A B C
3 1 3
2 1 3
2 2
1
当前代码:
files <- read.csv("SampleData3.csv", header = T)
subset<-as.data.frame(files[files$RowID == A, "DisRank"])
答案 0 :(得分:1)
尝试以下方法:
CD 'C:\\FOLDERPATH\'
$filter = "FILE_NAME_*.txt"
$columns = 11,22,32,42,54
## DO NOT NEED TO REVERSE [array]::Reverse($columns) #too lazy to re-write array after finding out I need to iterate in reverse
$files = get-childitem ./ |where-object {$_.Name -like $filter}
$newDelimiter = '|'
foreach($file in $files)
{
$file
$csvFile = 'C:\\FOLDERPATH\NEW_' + $file.BaseName + '.txt'
if (!(get-childitem ./ |where-object {$_.Name -like $csvFile})) #check whether file has been processed
{
$content | ForEach {
$line = $_
$counter = 0
$columns | ForEach {
$line = $line.Insert($_+$counter, $newDelimiter)
$counter = $counter + 1
}
$line = $line.Trim($newDelimiter)
$line
} | set-content $csvFile
}
}
答案 1 :(得分:0)
这是使用tidyverse
进行此操作的tidyr::spread
方式。您还需要添加行号,我最后使用dplyr
的{{1}}删除了行号。
首先创建数据:
select(-id)
现在开始工作:
df = read.table(text="Row People
A 3
A 2
A 2
B 1
B 1
C 3
C 3
C 2
C 1", header = TRUE)
答案 2 :(得分:-1)
A B C
1 3, 2, 2 1, 1 3, 3, 2, 1
怎么样?这将在单元格中为您提供opacity
列表。
#showMe {
opacity: 0;
-moz-animation: cssAnimation 5s;
/* Firefox */
-webkit-animation: cssAnimation 5s;
/* Safari and Chrome */
-o-animation: cssAnimation 5s;
/* Opera */
animation: cssAnimation 5s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@keyframes cssAnimation {
99% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes cssAnimation {
99% {
opacity: 0;
}
100% {
opacity: 1;
}
}
答案 3 :(得分:-1)
据我所知,你想要的DataFrame不是R中的有效DataFrame。所以这是不可能的。你应该解释为什么你想要这样的东西。还有其他数据类型,例如可以将数据存储在这样的结构中的列表,但我不知道您之后想要做什么。